IT/DB

[ORACLE] FETCH ... BULK COLLECT INTO ...

Life Log 2018. 3. 19. 09:23
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
반응형