select email from member where regexp_like(email,'[^ ]+@[^.][^ ]+\..[^ ]+');
'[a-zA-Z0-9._%-]+@[a-zA-Z0-9._%-]+\.[a-zA-Z]{2,4}'
http://stackoverflow.com/questions/787167/validation-on-email-postcode-fields-in-sql-oracle
ALTER SESSION SET NLS_LANGUAGE='AMERICAN'; with t as ( select '01-02-2007' str from dual union all select '7-8-2007' str from dual union all select '2007/03/28' str from dual union all select '10-MAY-07' str from dual ) select str , to_date(str, case when regexp_like(str,'[0-9]{1,2}-[0-9]{1,2}-[0-9]{4}') then 'dd-mm-yyyy' when regexp_like(str,'[0-9]{4}/[0-9]{1,2}/[0-9]{1,2}') then 'yyyy/mm/dd' when regexp_like(str,'[0-9]{2}-[A-Z]{3}-[0-9]{2}') then 'dd-mon-yy' end) as date1 from t;
ORA-01843: not a valid month 가 나올경우 NLS_LANG 을 확인해 본다.
with t as ( select '01-02-2007' str from dual union all select '7-8-2007' str from dual union all select '2007/03/28' str from dual union all select '10-MAY-07' str from dual ) select str , to_date(str, case when regexp_like(str,'[0-9]{1,2}-[0-9]{1,2}-[0-9]{4}') then 'dd-mm-yyyy' when regexp_like(str,'[0-9]{4}/[0-9]{1,2}/[0-9]{1,2}') then 'yyyy/mm/dd' when regexp_like(str,'[0-9]{2}-[A-Z]{3}-[0-9]{2}') then 'dd-mon-yy' end,'NLS_DATE_LANGUAGE=AMERICAN') as date1 from t;