Я так не думаю. Но даже если бы вы могли, почему вы хотите? Вы просите больше проблем, чем я мог бы назвать. Что произойдет, если в двух ваших массивах не будет одинакового количества записей? Что произойдет, если они были собраны в массив в другом порядке?
Почему бы просто не использовать объединение, собрать все в 1 курсор и затем вставить это?
SQL>
SQL> create table blah as
2 select a.*
3 , cast( null as varchar2(30) ) as usr
4 , cast( null as date ) as dt
5 , cast( null as varchar2(30) ) as object_name
6 from user_tables a
7 where 1 = 0;
Table created.
SQL>
SQL> declare
2
3 cursor c_tab is
4 select a.*, user, sysdate, b.object_name
5 from user_tables a
6 join user_objects b
7 on a.table_name = b.object_name
8 ;
9
10 type t__tab is table of c_tab%rowtype index by binary_integer;
11 t_tab t__tab;
12
13 begin
14
15 open c_tab;
16
17 loop
18 fetch c_tab bulk collect
19 into t_tab limit 1000;
20
21 exit when t_tab.count = 0;
22
23 forall ii in t_tab.first .. t_tab.last
24 insert into blah
25 values t_tab(ii)
26 ;
27
28 commit;
29
30 end loop;
31
32 close c_tab;
33
34 end;
35 /
PL/SQL procedure successfully completed.
SQL>