티스토리 뷰
간혹 업무를 처리하다보면 콤마(,)나 슬래시(/) 등으로 구분된 문자열을 행으로 분리해야하는 경우가 있습니다.
오라클 10g에서는 관련 함수(Regexp_Substr)를 제공하고 있지만 9i이하에서는 쿼리를 작성하여 처리해야 합니다.
문자열에 'A, B, C, D' 가 들어있는 경우,
오라클 9i에서 문자열 분리하는 방법
SELECT SUBSTR (COL,
INSTR (COL, ',', 1, LEVEL) + 1,
INSTR (COL, ',', 1, LEVEL + 1) - INSTR (COL, ',', 1, LEVEL)
- 1) AS COL
FROM (SELECT ',' || 'A,B,C,D' || ',' AS COL
FROM DUAL)
CONNECT BY LEVEL <= LENGTH (COL) - LENGTH (REPLACE (COL, ',')) - 1
;
오라클 10g에서 문자열 분리하는 방법
Select Regexp_Substr('A,B,C,D','[^,]+', 1, Level) COL From Dual
Connect By Regexp_Substr('A,B,C,D', '[^,]+', 1, Level) Is Not Null
;
결과값
COL
------
A
B
C
댓글