Vous pouvez tester le format à l'aide d'une expression régulière.
Ce serait quelque chose comme :
select dates
from tbl
where regexp_like(dates, '[[:digit:]]{4}/[[:digit:]]{2}/[[:digit:]]{2}')
Cela fonctionne bien. Il vérifie que le format est en « nombre à 4 chiffres / nombre à 2 chiffres / nombre à 2 chiffres ». Vous voudrez peut-être quelque chose de plus fort, comme :
select dates
from tbl
where regexp_like(dates, '[[:digit:]]{4}/[[:digit:]]{2}/[[:digit:]]{2}') or
(substr(dates, 1, 4) not between '1900' and '2014' or
substr(dates, 6, 2) not between '01' and '12'
substr(dates, 9, 2) not between '01' and '31'
)
Cela vérifie le format et les valeurs raisonnables dans chaque colonne. Bien sûr, il ne vérifie pas le 31 juin, mais il détectera de nombreuses erreurs.