我正在创建一个存储过程,以使用 limit 子句将数据从一个表(表 1)批量收集到另一个表(表 2)。
例如,如果我正在加载 80000 条记录,限制子句为 1000,那么 sys refcursor 中的 select 语句被执行了多少次?它会执行一次还是每个限制的迭代(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;