SELECT v , SUBSTR(v, 1, 2) ||'-'|| SUBSTR(v, 3, 4) ||'-'|| SUBSTR(v, 7, 4) x , REGEXP_REPLACE(v, '(..)(....)(....)', '\1-\2-\3') x -- 2-4-4 , REGEXP_REPLACE(v, '(....)', '-\1-', 3, 1) x -- 3번째 자리부터 첫번째 4글자 앞뒤로 - 붙이기 , REGEXP_REPLACE(v, '([0-9]{4})', '-\1') x -- 항상 (문자2 숫자8) 인 경우 4자리 숫자마다 앞에 - 붙이기 FROM (SELECT 'AA12345678' v FROM dual) ;