使用 Oracle 存储过程在多个表中插入数据

本文关键字:插入 数据 Oracle 存储过程 使用 | 更新日期: 2023-09-27 18:33:48

我有4个表,表1,表2,表3和表4,它们是相互关联的。表 1 将生成一个主键,该主键将在其余表中用作引用键。

我必须使用此主键在表 4 中插入多条记录。由于要求是事务应该成功提交,或者应该回滚所有更改。这就是我想在存储过程中编写它的原因。但是当我不得不为 table4 传递多行数据时,卡住了。

任何人都可以建议,我如何实现这一目标?

谢谢,提前。

使用 Oracle 存储过程在多个表中插入数据

我想你想做这样的事情

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;