티스토리 뷰

반응형

CREATE OR REPLACE FUNCTION FAC.FN_SPLITROW

(
    I_VALUE VARCHAR2,
    I_DELIMETER VARCHAR2 := ','
)
RETURN VARCHAR2_ARRAY_4000
PIPELINED
IS
    L_IDX    PLS_INTEGER;
    L_REST_VALUE    VARCHAR2(32767) := I_VALUE;
BEGIN
    LOOP
        L_IDX := INSTR(L_REST_VALUE, I_DELIMETER);
        IF L_IDX > 0 THEN
            PIPE ROW(TRIM(SUBSTR(L_REST_VALUE, 1, L_IDX - 1)));
            L_REST_VALUE := SUBSTR(L_REST_VALUE, L_IDX + LENGTH(I_DELIMETER));
        ELSE
            PIPE ROW(TRIM(L_REST_VALUE));
            EXIT;
        END IF;
    END LOOP;
    RETURN;
END FN_SPLITROW;
/

사용방법

SELECT COLUMN_VALUE
FROM TABLE(FAC.FN_SPLITROW('1,2,3',','))

반응형
댓글
반응형
공지사항
최근에 올라온 글
최근에 달린 댓글
Total
Today
Yesterday
«   2025/01   »
1 2 3 4
5 6 7 8 9 10 11
12 13 14 15 16 17 18
19 20 21 22 23 24 25
26 27 28 29 30 31
글 보관함