일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
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 |
- netsh
- Mac
- Windows 10
- lsof
- Quartz
- grep
- 줄바꿈 문자
- 네트워크
- ssh
- JavaScript
- tomcat
- 단축키
- profile
- VirtualBox
- vscode
- Eclipse
- xargs
- port
- bash
- web.xml
- maVen
- context
- Source
- resource
- GIT
- plugin
- import
- find
- Windows
- IntelliJ
- Today
- Total
develog
PLSQL split 본문
DECLARE
TYPE T_LIST IS TABLE OF VARCHAR2(100);
V_LIST T_LIST;
P_STR VARCHAR2(100);
FUNCTION FN_SPLIT(P_STR VARCHAR2, P_DELIMITER VARCHAR2 DEFAULT ',')
RETURN T_LIST
IS
V_STR VARCHAR2(100);
V_IDX NUMBER;
V_ITEM VARCHAR2(100);
V_LIST T_LIST;
BEGIN
V_STR := P_STR;
V_LIST := T_LIST();
WHILE TRUE
LOOP
IF V_STR IS NULL
THEN
V_LIST.EXTEND;
V_LIST(V_LIST.COUNT) := '';
EXIT;
END IF;
V_IDX := INSTR(V_STR, ',');
IF V_IDX = 0
THEN
V_ITEM := V_STR;
V_LIST.EXTEND;
V_LIST(V_LIST.COUNT) := V_ITEM;
EXIT;
ELSE
V_ITEM := SUBSTR(V_STR, 0, V_IDX - 1);
V_STR := SUBSTR(V_STR, V_IDX + 1);
V_LIST.EXTEND;
V_LIST(V_LIST.COUNT) := V_ITEM;
END IF;
END LOOP;
RETURN V_LIST;
EXCEPTION
WHEN OTHERS
THEN
RETURN NULL;
END;
BEGIN
P_STR := 'AA,BB,CC,';
V_LIST := FN_SPLIT(P_STR, ',');
DBMS_OUTPUT.PUT_LINE('P_STR : ' || P_STR);
FOR I IN 1..V_LIST.COUNT
LOOP
DBMS_OUTPUT.PUT_LINE(I || '. ' || V_LIST(I));
END LOOP;
END;
'DB > PLSQL' 카테고리의 다른 글
PLSQL 2차원 배열 (0) | 2013.12.12 |
---|---|
plsql random (0) | 2013.05.30 |
Dynamic Cursor (0) | 2012.04.17 |
기본 구조 (0) | 2012.04.17 |