728x90
Oracle 10g에서는 REGEXP_로 시작하는 함수를 지원합니다. 레귤러 익스프레션 지원이죠. 아래는 그 함수들의 사용방법을 공유합니다.

1. REGEXP_INSTR 함수

 - 문법 : REGEXP_INSTR(소스 문자열, Pattern [, 검색 시작 위치 [, 발생 횟수 [, 반환 옵션 [, Match를 시도할 때의 옵션]]]])
 - 예제
SQL> SELECT REGEXP_INSTR('Regular Expression', 'a') REG_INS 
2 FROM dual;

REG_INS
----------
6
2. REGEXP_LIKE
 - 문법 : REGEXP_LIKE(소스 문자열, Pattern [, Match를 시도할 때의 옵션])
 - [[:digit:]] : 숫자인것
 - [^[:digit:]] : 숫자가 아닌것
 - [[:alpha:]]
 - 필듯가 숫자와 문자가 같이 있을 경우 잘 판단해야 함
 - 예제
SQL> SELECT SSN 
2 FROM TEST
3 WHERE SSN > ' '
4 and REGEXP_LIKE(SSN, '[^[:digit:]]');

SSN
-------------
******2229149
******2228659
******2223591
3. REGEXP_REPLACE
 - REGEXP_REPLACE(소스 문자열, Pattern [, 바꿀 문자열 [, 위치 [, 발생횟수 [Match 파라미터]]]])
 - 예제
SQL> SELECT REGEXP_REPLACE(SSN, '[0-9]', '*' , 7) REG_REP
2 FROM(
3 SELECT '7901061842210' SSN
4 FROM dual
5 );

REG_REP
-------------
790106*******
4. REGEXP_SUBSTR
 - REGEXP_SUBSTR(소스 문자열, Pattern [, 위치 [, 발생 횟수 [, Match를 시도할 때의 옵션]]])
 - 예제
SQL> SELECT REGEXP_SUBSTR(EMAIL, '[^@]+') REG_SUB
2 FROM(
3 SELECT 'pepsi@paran.com' EMAIL
4 FROM dual
5 );

REG_S
-----
pepsi
원문 : http://mimul.com/pebble/default/2009/07/03/1246617840000.html

+ Recent posts