バルクコレクトスクリプト
※コピーすると改行が抜ける場合はソースをダブルクリックして強調表示を外してからコピーしてくださいset serveroutput on DECLARE BULK_NUM CONSTANT PLS_INTEGER := 5; --バルクサイズ CURSOR CUR_EMP IS SELECT ENAME FROM SCOTT.EMP ORDER BY EMPNO; TYPE TYPE_EMP IS TABLE OF CUR_EMP%ROWTYPE INDEX BY BINARY_INTEGER; REC_ENAME TYPE_EMP; BEGIN OPEN CUR_EMP; LOOP FETCH CUR_EMP BULK COLLECT INTO REC_ENAME LIMIT BULK_NUM; DBMS_OUTPUT.PUT_LINE('フェッチ数:' || REC_ENAME.COUNT); EXIT WHEN REC_ENAME.COUNT = 0; FOR i in 1 .. REC_ENAME.COUNT LOOP DBMS_OUTPUT.PUT_LINE(REC_ENAME(i).ENAME); END LOOP; END LOOP; DBMS_OUTPUT.PUT_LINE('合計フェッチ数:' || CUR_EMP%ROWCOUNT); CLOSE CUR_EMP; end; /
マニュアル
Oracle Database PL/SQLパッケージ・プロシージャおよびタイプ・リファレンス(10.2)PL/SQL ユーザーズ・ガイドおよびリファレンス(10.2)