728x90
Oracle 10g에서는 REGEXP_로 시작하는 함수를 지원합니다. 레귤러 익스프레션 지원이죠. 아래는 그 함수들의 사용방법을 공유합니다.
1. REGEXP_INSTR 함수
- 문법 : REGEXP_INSTR(소스 문자열, Pattern [, 검색 시작 위치 [, 발생 횟수 [, 반환 옵션 [, Match를 시도할 때의 옵션]]]])
- 예제
- 문법 : REGEXP_LIKE(소스 문자열, Pattern [, Match를 시도할 때의 옵션])
- [[:digit:]] : 숫자인것
- [^[:digit:]] : 숫자가 아닌것
- [[:alpha:]]
- 필듯가 숫자와 문자가 같이 있을 경우 잘 판단해야 함
- 예제
- REGEXP_REPLACE(소스 문자열, Pattern [, 바꿀 문자열 [, 위치 [, 발생횟수 [Match 파라미터]]]])
- 예제
- REGEXP_SUBSTR(소스 문자열, Pattern [, 위치 [, 발생 횟수 [, Match를 시도할 때의 옵션]]])
- 예제
1. REGEXP_INSTR 함수
- 문법 : REGEXP_INSTR(소스 문자열, Pattern [, 검색 시작 위치 [, 발생 횟수 [, 반환 옵션 [, Match를 시도할 때의 옵션]]]])
- 예제
SQL> SELECT REGEXP_INSTR('Regular Expression', 'a') REG_INS2. REGEXP_LIKE
2 FROM dual;
REG_INS
----------
6
- 문법 : REGEXP_LIKE(소스 문자열, Pattern [, Match를 시도할 때의 옵션])
- [[:digit:]] : 숫자인것
- [^[:digit:]] : 숫자가 아닌것
- [[:alpha:]]
- 필듯가 숫자와 문자가 같이 있을 경우 잘 판단해야 함
- 예제
SQL> SELECT SSN3. REGEXP_REPLACE
2 FROM TEST
3 WHERE SSN > ' '
4 and REGEXP_LIKE(SSN, '[^[:digit:]]');
SSN
-------------
******2229149
******2228659
******2223591
- REGEXP_REPLACE(소스 문자열, Pattern [, 바꿀 문자열 [, 위치 [, 발생횟수 [Match 파라미터]]]])
- 예제
SQL> SELECT REGEXP_REPLACE(SSN, '[0-9]', '*' , 7) REG_REP4. REGEXP_SUBSTR
2 FROM(
3 SELECT '7901061842210' SSN
4 FROM dual
5 );
REG_REP
-------------
790106*******
- 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
'데이터베이스 > 오라클' 카테고리의 다른 글
다중 인서트 insert all 오라클 쿼리문 (0) | 2011.03.07 |
---|---|
[펌] 유용한 오라클 쿼리 정리 (0) | 2011.03.07 |
Protected: Presentation Scripts (0) | 2010.09.29 |
Oracle DBA Scripts and Tips (0) | 2010.09.28 |
오라클 튜닝 & 유지보수 관련정리 (0) | 2010.09.28 |