5

table1、table2、table3、table4 という 4 つのテーブルがあり、相互に関連しています。Table1 は主キーを生成し、残りのテーブルで参照キーとして使用されます。

この主キーを使用して、テーブル 4 に複数のレコードを挿入する必要があります。要件は、トランザクションが正常にコミットされるか、すべての変更をロールバックする必要があるためです。それが、これをストアド プロシージャで記述しようと考えた理由です。しかし、table4 に複数の行データを渡さなければならなかったときに行き詰まりました。

どうすればこれを達成できますか?

前もって感謝します。

4

1 に答える 1

2

私はあなたがこのようなことをしたいと思う

CREATE OR REPLACE PROCEDURE myproc
(
 invId IN NUMBER,
 cusId IN NUMBER
)
IS
    temp_id  NUMBER; 
BEGIN 
    INSERT INTO myTable (INV_ID) 
    VALUES (invId)
    returning id into temp_id;

    INSERT INTO anotherTable (ID, custID) 
    VALUES (temp_id, custId);  
END myproc;
于 2013-10-03T11:25:58.787 に答える