개발DB에서 작업만 하다보니 리얼DB의 버젼이 낮은것을 잊고 있었습니다.
마농님의 도움으로 작업일정을 잡고 준비중에 복병을 만났네요..
ORACLE 9i에서 REGEXP_REPLACE를 지원하지 않는 것으로 알고 있습니다.
다른 방법이나, 대체 함수혹은, 저 펑션을 추가할수는 없을까요?
-----샘플 DB--------
WITH T
AS
(
SELECT /*+PARALLEL(A 4) FULL(A)*/12345678 AS CUST_ID
, '텍스트텍스트 123456 1234567,계좌번호041-041512-01-511,123ABCi텍스트 텍스트 텍스트' AS BIGO
FROM DUAL A
)
SELECT cust_id
, bigo
, REGEXP_REPLACE(REGEXP_REPLACE(REGEXP_REPLACE(REGEXP_REPLACE(bigo
-- 1. 주민번호 패턴 --
, '(^|[^0-9])([0-9]{6}-[0-9]{7})($|[^0-9])', '\1******-*******\3')
-- 2. 주민번호 패턴 --
, '(^|[^0-9])([0-9]{6} [0-9]{7})($|[^0-9])', '\1******-*******\3')
-- 3. 계죄번호 패턴 --
, '(^|[^0-9])([0-9]{3}-[0-9]{4}-[0-9]{6})($|[^0-9])', '\1***-****-******\3')
-- 4. 계죄번호 패턴2 --
, '(^|[^0-9])([0-9]{3}-[0-9]{6}-[0-9]{2}-[0-9]{3})($|[^0-9])', '\1***-****-******\3')
AS result
FROM t
;
|