본문 바로가기

IT관련

오라클 정규표현식 함수 regexp_replace 샘플예제 (날짜 포맷 변경하기 SQL문)

지난번에 Oracle Regular Expression 함수 regexp_replace( ) 의 기본적인 기능을 살펴봤습니다.

이번에는 조금 더 복잡한 경우를 구현해보고자 합니다.

 

날짜 포맷이 서양에서 많이 사용하는 'MM/DD/YYYY' 형태로 되어 있는 것을 'YYYY/MM/DD' 로 바꾸고,

구분문자 '/' 도 '-' 로 바꿔 보겠습니다.

 

먼저, 'MM/DD/YYYY' ->  'YYYY/MM/DD' 변환을 해야 합니다.

뒤에있는 년도(YYYY)를 분리해서 앞으로 가져와야 합니다.

 

문자열을 분리하기 위해서는 패턴문자열에 괄호 ( ) 로 서브패턴들을 감싸주면 됩니다.

첫번째 ( ) 안에 감싸진 패턴이 \1 이 되고, 두번째 ( ) 안에 감싸진 패턴 결과가 \2 가 되는식입니다.

 

[0-9]{2} 는 "숫자 2자리",

[0-9]{4} 는 "숫자 4자리"  의 의미를 갖습니다.

 

중간에 구분자 슬래시(/) 는 패턴문자열에는 그대로 써주면 일치하는 것을 찾습니다.

대체문자열(replace_string)에 \3, \1, \2 순으로 써주면 3번째 서브패턴에 일치하는 녀석들이 맨처음에 오게 됩니다.

그리고, 구분자는 / 대신 - 로 바꿔주면 끝~  참 쉽네요~~ ( •̀ ω •́ )y

 

 

▶ 참고 : 오라클 정규표현식(Regular Expression) 소개 메인 페이지