지난번에 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) 소개 메인 페이지
'IT관련' 카테고리의 다른 글
Oracle 샘플 테스트 데이터 생성 프로그램 다운로드 (Data Maker) (5) | 2021.01.19 |
---|---|
테이블 자동 시리얼 번호 컬럼 Auto Increment Identity Column (오라클 12c 신기능) (0) | 2020.12.30 |
오라클 정규표현식 함수 regexp_replace 샘플예제 (Email 주소에서 @앞부분만 다른 문자열로 바꿔치기 SQL문) (0) | 2020.12.10 |
오라클 정규표현식 함수 regexp_replace 샘플예제 (문자열 바꿔치기, 치환) (0) | 2020.12.10 |
오라클 정규표현식 함수 regexp_substr 샘플예제 (문자열내에서 http URL 만 추출하는 SQL문) (0) | 2020.12.10 |