728x90
반응형
PL/SQL 상에서 CURSOR 대신 속도 향상을 위해서 사용
IS
CURSOR1 SYS_REFCURSOR;
TYPE RECORD_TYPE IS RECORD(COL1 TABLE1.COL1%TYPE);
TYPE TABLE_TYPE IS TABLE OF RECORD_TYPE INDEX BY BINARY_INTEGER;
O_TABLE_TYPE TABLE_TYPE;
BEGIN
OPEN CURSOR1 FOR SELECT COL1 FROM TABLE1;
FETCH CURSOR1 BULK COLLECT INTO O_TABLE_TYPE;
CLOSE CURSOR1
FOR IDX IN 1 .. O_TABLE_TYPE.COUNT LOOP
...
END LOOP;
-- FORALL IDX IN 1 .. O_TABLE_TYPE.COUNT
또는
OPEN CURSOR1 FOR SELECT COL1 FROM TABLE1;
LOOP
FETCH CURSOR1 BULK COLLECT INTO O_TABLE_TYPE LIMIT 1000;
EXIT WHEN O_TABLE_TYPE .COUNT = 0;
FOR IDX IN 1 .. O_TABLE_TYPE.COUNT LOOP
...
END LOOP;
END LOOP;
CLOSE CURSOR1
...
* 참고
728x90
반응형
'IT > DB' 카테고리의 다른 글
[Oracle] 개행문자열 (0) | 2019.01.31 |
---|---|
[Oracle] REGEXP_SUBSTR 사용 시 공백에 대한 처리 (0) | 2019.01.30 |
[ORACLE]LISTAGG 함수(여러 Row 를 하나의 Column 으로 표현) (0) | 2018.07.20 |