Oracle
특정구분자로 구성된 문자열을 ROW로 변환하기(SPLIT) 2
캡틴노랑이
2016. 3. 3. 17:27
반응형
특정 문자로 구문된 문자열을 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;
반응형