오라클 정규표현식을 이용한 전화번호 포맷팅
오라클 정규표현식중 REGEXP_REPLACE를 이용해서 다음과 같이 전화번호를 원하는 형태로 포맷팅 할 수 있습니다. 다음은 10G에서 돌아가는 쿼리입니다.
REGEXP_REPLACE
(REGEXP_REPLACE (tel, '[^[:digit:]]'),
'(^02|050[[:digit:]]{1}|[[:digit:]]{3})([[:digit:]]{3,4})([[:digit:]]{4})', '\1-\2-\3') AS format_tel
FROM (SELECT '025475847' AS tel FROM DUAL
UNION ALL
SELECT '0254475847' FROM DUAL
UNION ALL
SELECT '03144745847' FROM DUAL
UNION ALL
SELECT '0314474584' FROM DUAL
UNION ALL
SELECT '05054474584' FROM DUAL
UNION ALL
SELECT '050544745894' FROM DUAL
UNION ALL
SELECT '050611112222' FROM DUAL
UNION ALL
SELECT '07055557777' FROM DUAL
UNION ALL
SELECT '0705557777' FROM DUAL
UNION ALL
SELECT '05177778888' FROM DUAL
UNION ALL
SELECT '051777788888' FROM DUAL
UNION ALL
SELECT '1111222233334' FROM DUAL);
핸드폰은 규칙이 간단하니 다음과 같이 더 쉽게 할 수 있습니다.
REGEXP_REPLACE(REGEXP_REPLACE (cellphone, '[^[:digit:]]'), '(^[[:digit:]]{3})([[:digit:]]{3,4})([[:digit:]]{4}$)', '\1-\2-\3')