개발/오라클
오라클 문자열을 특정 delimiter로 split 하여 테이블처럼 반환
자바의 Split처럼 오라클에서도 문자열을 특정 delimiter로 데이터를 반환받을수있다 함수를 먼저 만들어놓고
CREATE OR REPLACE FUNCTION FN_SPLIT_TO_ROW
(
P_LIST VARCHAR2,
P_DEL VARCHAR2 := ','
)
RETURN TMP_SPLIT /* TYPE하나 만들어준다 */ PIPELINED
IS
L_IDX PLS_INTEGER;
L_LIST VARCHAR2(32767) := P_LIST;
L_VALUE VARCHAR2(32767);
BEGIN
LOOP
L_IDX := INSTR(L_LIST, P_DEL);
IF L_IDX > 0 THEN
PIPE ROW(SUBSTR(L_LIST, 1, L_IDX-1));
L_LIST := SUBSTR(L_LIST, L_IDX + LENGTH(P_DEL));
ELSE
IF LENGTH(L_LIST) > 0 THEN
PIPE ROW(L_LIST);
END IF;
EXIT;
END IF;
END LOOP;
RETURN;
END FN_SPLIT_TO_ROW;
이런식으로 호출하면끝~
SELECT COLUMN_VALUE FROM TABLE(FN_SPLIT_TO_ROW('A,B,C',','));
'개발 > 오라클' 카테고리의 다른 글
오라클 CONNECT BY 행 복사를 특정숫자값 만큼(행 필터링없이) (1) | 2020.06.17 |
---|---|
오라클 프로시저 synchronized (LOCK) 락 설정 (0) | 2020.06.17 |
오라클 CONNECT BY 갖고놀기 (FROM TO 사이 날짜전부 가져오기) #1 (0) | 2020.06.11 |
오라클 시퀀스 초기화 시퀀스값 1로 변경 sequense init (0) | 2020.05.29 |
오라클 DB LOCK 디비락 조회 및 KILL SESSION 스크립트 (0) | 2020.05.26 |
댓글