limit 句を使用して、あるテーブル (テーブル 1) から別のテーブル (テーブル 2) にデータを一括収集するストアド プロシージャを作成しています。
たとえば、1000 の limit 句で 80000 レコードをロードしている場合、sys refcursor の select ステートメントが実行される回数は? 1 回実行するのか、それとも各制限の反復 (80000/1000) = 80 回実行するのか?
誰かが処理の詳細を教えてください。
コード スケルトン スニペット
create or replace procedure <procedure_name> as
<curosor name> SYS_REFCURSOR;
< collection_name > ;
begin
open <cursor_name> for <select statment>;
loop
fetch <cursor_name> into < collection_name > limit 1000;
exit when <cursor_name>%not_found;
forall i in 1..<collection_name>.count
insert statement into to table 2 values <i>
end loop;