私はそうは思わない。しかし、たとえあなたがなぜそうしたいと思うことができたとしても?あなたはおそらく私が名付けることができるよりも多くのトラブルを求めています。 2つの配列のレコード数が同じでないとどうなりますか?アレイに別の順序で収集された場合はどうなりますか?
ジョインを使用して、すべてを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>
出典
2012-01-23 13:20:18
Ben
試しましたか? –
ええと、そのコードは*一括挿入です。 –