오라클(ORACLE)에서 전화번호를 저장 시 하이픈 없이 숫자만을 저장하는 경우가 많다. 전화번호를 조회해서 보기 좋게 하이픈을 다시 넣어서 조회를 해야하는 경우가 많다.
오라클 10g 이상의 버전에서는 정규식 함수(REGEXP_REPLACE)를 사용하여 전화번호 포맷을 쉽게 변경할 수 있다.
핸드폰 번호만 있을 경우
WITH temp_table AS (
SELECT '01023456789' tel_no FROM dual UNION ALL
SELECT '0114567890' tel_no FROM dual UNION ALL
SELECT '0161234567' tel_no FROM dual
)
SELECT tel_no
, REGEXP_REPLACE(tel_no, '(.{3})(.+)(.{4})', '\1-\2-\3') tel_no2
FROM temp_table
=>REGEXP_REPLACE(tel_no, '(문자열앞3자리)(나머지문자열)(문자열뒤4자리)', '\1-\2-\3')
핸드폰 번호는 [3자리 + (3자리 또는 4자리) + 4자리] 의 형식 이다.
일반 전화번호 + 핸드폰 번호
WITH temp_table AS (
SELECT '027891234' tel_no FROM dual UNION ALL
SELECT '0314567890' tel_no FROM dual UNION ALL
SELECT '01023456789' tel_no FROM dual
)
SELECT tel_no
, REGEXP_REPLACE(tel_no, '(02|.{3})(.+)(.{4})', '\1-\2-\3') tel_no2
FROM temp_table
=>REGEXP_REPLACE(tel_no, '(예외지역번호(02) 또는 문자열앞3자리)(나머지문자열)(문자열뒤4자리)', '\1-\2-\3')
서울 지역번호(02)를 제외하고는 모두 전화번호의 앞자리는 모두 3자리 이다. 예외의 전화번호 앞자리가 있으면 02|0505|~~~를 추가하면 된다.
'Oracle' 카테고리의 다른 글
| Oracle APEX (0) | 2023.03.03 |
|---|---|
| 오라클 Core 라이선스 계산 기준 (0) | 2023.03.02 |
| Oracle 대량 데이터 삽입 insert 빠르게 실행 벌크 insert : FORALL (0) | 2023.03.02 |
| [오라클 성능 고도화 Ⅰ] 오라클 아키텍처 (0) | 2023.03.02 |
| 하위 Client에서 Oracle 19c 접속 (0) | 2023.03.02 |