0

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;
4

1 に答える 1