오라클 정규표현식중 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')
'database' 카테고리의 다른 글
GROUPING SETS (0) | 2011.10.19 |
---|---|
주민등록번호로 나이를 구하는 Query (0) | 2008.10.24 |
날짜 포함 비교 Query (0) | 2008.07.08 |
Database 버전 확인 (0) | 2008.04.16 |
ORACLE에서 한글을 지원하는 캐릭터셋 (0) | 2008.02.20 |