Create a function that converts a date string to date:
create or replace function date_from_string(str varchar2, fmt varchar2) return date is
v date;
begin
return to_date(str,fmt);
exception when others
then return null;
end;
And query the table, for example:
with t as (
select case when regexp_like(field, '^\d{4}-\d\d-\d\d \d\d:\d\d:\d\d$')
then 'YYYY-MM-DD HH24:MI:SS'
when regexp_like(field, '^\d\d-[a-zA-Z]{3}-\d{4} \d\d:\d\d:\d\d$')
then 'DD-MON-YYYY HH24:MI:SS'
end fmt, t.*
from "TABLE" t
)
select t.*, date_from_string(t.field, t.fmt) "DATE" from t
where date_from_string(t.field, t.fmt) is not null;
This way you can easily check that the date in a given record is correct.