상세 컨텐츠

본문 제목

오라클 전화번호 자르기, 정규식 활용

프로그래밍/Oracle

by ........? 2016. 2. 22. 10:06

본문

오라클 정규식을 활용한 전화번호 자르기


전화번호라 하면 일반 전화번호에서 핸드폰번호까지 다양한 형태의 번호가 존재

02로 시작하는 번호, 080으로 시작하는 번호, 010, 011 로 시작하는 번호 등


다양한 번호의 유형이 있어 이걸 일반쿼리문으로 구분자를 넣거나, 자르기를 하는 것은

쿼리문도 길어질뿐 아니라 다양한 유형에 대한 처리가 어려움


그래서 정규식을 활용한 전화번호 자르기 및 구분자 넣기

SELECT REGEXP_REPLACE('전화번호','(02|031|032|033|041|042|043|051|052|053|054|055|061|062|063|064'||'|010|011|016|017|018|019'||'|030|050|060|070|080)'||'(.+)(.{4})','\1-\2-\3')
  FROM DUAL

;


예제

SELECT REGEXP_REPLACE(PHONE_NUMBER,'(02|031|032|033|041|042|043|051|052|053|054|055|061|062|063|064'||'|010|011|016|017|018|019'||'|030|050|060|070|080)'||'(.+)(.{4})','\1-\2-\3') PHONE_NUMBER,
       REGEXP_REPLACE(PHONE_NUMBER,'(02|031|032|033|041|042|043|051|052|053|054|055|061|062|063|064'||'|010|011|016|017|018|019'||'|030|050|060|070|080)'||'(.+)(.{4})','\1') PHONE_NO1,
       REGEXP_REPLACE(PHONE_NUMBER,'(02|031|032|033|041|042|043|051|052|053|054|055|061|062|063|064'||'|010|011|016|017|018|019'||'|030|050|060|070|080)'||'(.+)(.{4})','\2') PHONE_NO2,
       REGEXP_REPLACE(PHONE_NUMBER,'(02|031|032|033|041|042|043|051|052|053|054|055|061|062|063|064'||'|010|011|016|017|018|019'||'|030|050|060|070|080)'||'(.+)(.{4})','\3') PHONE_NO3
  FROM (SELECT '0222223333' PHONE_NUMBER FROM DUAL UNION ALL
        SELECT '01044445555' PHONE_NUMBER FROM DUAL UNION ALL
        SELECT  '0116667777' PHONE_NUMBER FROM DUAL UNION ALL
        SELECT '08088889999' PHONE_NUMBER FROM DUAL)
;




이처럼 지역번호부터 핸드폰번호까지 여러유형의 전화번호 자르기 및 구분자 넣기가 가능

관련글 더보기

댓글 영역