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;