사용자 도구

사이트 도구


dbms:oracle:devel:regexp:regexp_like

차이

문서의 선택한 두 판 사이의 차이를 보여줍니다.

차이 보기로 링크

다음 판
이전 판
dbms:oracle:devel:regexp:regexp_like [2012/04/04 00:41]
starlits 새로 만듦
dbms:oracle:devel:regexp:regexp_like [2016/06/12 02:14] (현재)
starlits [REGEXP_LIKE]
줄 1: 줄 1:
-====== 오라클 정규표현식 - REGEXP_LIKE ======+====== REGEXP_LIKE ======
  
-===== REGEXP_LIKE =====+===== 정의 ===== 
 +  - 오라클 정규표현식의 하나. 
 +===== 이메일 형식 체크 =====
   - 이메일 형식 체크(Validate)이 맞는지 확인하는 쿼리이다. <code>   - 이메일 형식 체크(Validate)이 맞는지 확인하는 쿼리이다. <code>
 select email  select email 
줄 7: 줄 9:
 where regexp_like(email,'[^ ]+@[^.][^ ]+\..[^ ]+'); where regexp_like(email,'[^ ]+@[^.][^ ]+\..[^ ]+');
 </code> </code>
 +  - 이메일 형식체크에 quotes 를 포함하여 아래의 구문을 따른다. <code>
 +'[a-zA-Z0-9._%-]+@[a-zA-Z0-9._%-]+\.[a-zA-Z]{2,4}' 
 +</code> \\ http://stackoverflow.com/questions/787167/validation-on-email-postcode-fields-in-sql-oracle
  
 +===== 날짜형식 체크 ===== 
 +  - 날짜형식 체크 <code> 
 +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; 
 +</code> \\ ORA-01843: not a valid month 가 나올경우 NLS_LANG 을 확인해 본다. \\ <code> 
 +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; 
 +</code>
dbms/oracle/devel/regexp/regexp_like.1333467692.txt.gz · 마지막으로 수정됨: 2012/04/04 00:41 저자 starlits