2014년 4월 8일 화요일

오라클REGEXP_LIKE, [오라클개발자교육/오라클/ORACLE강좌/오라클교육잘하는곳/오라클교육추천/ORACLE실무교육/ORACLE/ORACLE교육/ORACLE학원/오라클실무교육]

오라클REGEXP_LIKE, [오라클개발자교육/오라클/ORACLE강좌/오라클교육잘하는곳/오라클교육추천/ORACLE실무교육/ORACLE/ORACLE교육/ORACLE학원/오라클실무교육]

Oracle10g 이전 버전의 like와 비슷한 기능을 하는 REGEXP_LIKE에 대해 알아보도록 하겠습니다.

REGEXP는 LIKE조건과 비슷하지만 정규 POSIX와 UNICODE 표현식을 매핑하는 부분에선 LIKE와 차이가 있습니다.  LIKE의 경우는 Simple Pattenr Matching 인데 반해 좀더 강력한 기능을 제공 합니다.

아래 간단한 예제를 소개하니 참고 하세요~

먼저 LIKE를 이용하여 EMP TABLE에서 ENAME이 ‘J’로 시작하는 사람들을 검색해 보겠습니다. 지금까지 주로 봐왔던 간단한 패턴 매칭 이죠^^

SELECT ENAME
FROM  EMP
WHERE  ENAME LIKE 'J%';

[결과]
ENAME
-----
JONES
JAMES
JJSTAR

먼저 같은 결과를 만들어 내는 REGEXP_LIKE문은 다음과 같습니다.

SELECT ename
FROM  emp
WHERE  REGEXP_LIKE (ename, '^J');

만약 정규 표현식을 사용해 보신분이 계시다면 충분히 이해가 되실 겁니다.
^ --> 시작, % --> 끝 ...

이번에 조금더 변형해 볼까요?

SELECT ename
FROM  emp
WHERE  REGEXP_LIKE (ename, '^J.(N|M)');

이 경우는 ename이 ‘J’로 시작하며 세번째 문자가 M or N인 데이터를 찾는 것이죠…

결과는 아래와 같습니다.

[결과]
ENAME
-----
JONES
JAMES

관련된 자세한 부분은 Oracle Manaual을 참고해 보시고 스스로 공부해 보시기 바랍니다. 

댓글 없음:

댓글 쓰기