반응형
특정 문자로 구문된 문자열을 row으로 변환할 때 다음 코드를 사용 할 수 있다.
Package로 만들어서 사용하면 다음과 같다.
사용 예
SELECT COLUMN_VALUE FROM TABLE(COMNON_PKG.FN_RowByColumn(',' || RawData))
패키지로 만들 코드
FUNCTION FN_RowByColumn(in_List IN VARCHAR2) RETURN Ty_VC2_Tab PIPELINED IS v_Result VARCHAR2(2000); v_First NUMBER := 0; v_Second NUMBER := 0; BEGIN BEGIN IF SUBSTR(in_List, 1, 1) <> ',' THEN v_Result := ',' || in_List; ELSE v_Result := in_List; END IF; LOOP v_First := INSTR(in_List, ',', v_Second + 1, 1); v_Second := INSTR(in_List, ',', v_Second + 1, 2) - 1; IF v_Second > 0 THEN PIPE ROW(SUBSTR(v_Result, v_First + 1, v_Second - v_First)); ELSE PIPE ROW(SUBSTR(v_Result, v_First + 1)); END IF; EXIT WHEN v_Second < 0; END LOOP RETURN; END; END FN_GETRowByColumn;
반응형
'Oracle' 카테고리의 다른 글
최근 일자별로 한건씩 조회할 때 (0) | 2016.05.13 |
---|---|
Oracle 테이블, 컬럼 정보 조회 쿼리 (0) | 2016.05.10 |
[Query] FOR LOOP (0) | 2016.01.08 |
특정구분자로 구성된 문자열을 row로 변환하기(split) 1 (0) | 2016.01.08 |
CONNECT BY LEVEL, 순번을 딸 때 (0) | 2016.01.08 |
댓글