일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
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 |
- port
- resource
- web.xml
- 공통표준용어
- 네트워크
- bash
- import
- maVen
- Quartz
- GIT
- xargs
- Mac
- Windows
- JavaScript
- Source
- Eclipse
- find
- copy-dependencies
- lsof
- netsh
- context
- profile
- IntelliJ
- ssh
- grep
- VirtualBox
- DB 도메인
- 단축키
- tomcat
- Windows 10
- 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 |