pl/sqlでバルク挿入の場合はFORALL
を使用してこのようにすることはできますか?PL/SQLのFORALLループ内に挿入
TYPE c_type1 IS RECORD
(
column1 table1.column1%TYPE,
column2 table1.column2%TYPE,
client table2.client%TYPE
);
type1 c_type1;
CURSOR cur_t IS select * BULK COLLECT INTO recs from table3 ;
begin
FOR recs IN cur_t
LOOP
SELECT * INTO type1 FROM (select a.column1, a.column2,imm.client
...
from table1 a, table2 imm
WHERE
a.column1 = recs.column1
) WHERE ROWNUM=1;
INSERT INTO table2 values (recs.column1,type1.column2);
...
P.S:挿入する列が80以上あります。
このようにforallを使用できます。 http://psoug.org/snippet/FORALL-Insert_499.htm – XING
..INSERT INTO table2値(recs.column1、type1.column2)に気付いた場合、@XING;私は2つのテーブルからレコードを挿入する必要があります。 –
Whats Table 3 use..Whyループを実行しています。質問は明確ではありません。テーブル命名は適切ではありません – XING