[英]Get ID of last inserted row and use it to insert into another table in a stored procedure
我有以下存储过程,可用于将数据插入表中:
CREATE OR REPLACE PROCEDURE mySproc
(
invoiceId IN NUMBER
customerId IN NUMBER
)
IS
BEGIN
INSERT INTO myTable (INVOICE_ID)
VALUES (invoiceId);
END mySproc;
/
我想做的是获取最后插入的ID(这是myTable上的主键字段,并使用序列自动递增)并将其插入到另一个表中,我尝试了以下操作,但无法使其正常工作:
CREATE OR REPLACE PROCEDURE mySproc
(
invoiceId IN NUMBER
customerId IN NUMBER
)
IS
BEGIN
INSERT INTO myTable (INVOICE_ID)
VALUES (invoiceId)
returning id into v_id;
INSERT INTO anotherTable (ID, customerID)
VALUES (v_id, customerId);
END mySproc;
/
我收到此错误: [错误] PLS-00049(59:26):PLS-00049:错误的绑定变量'V_ID'我想我需要在某个地方声明v_id,但是我在BEGIN语句之前和之后都尝试过,但这又产生了另一个错误。
关于如何执行此操作的任何想法?
谢谢
将程序更改为
CREATE OR REPLACE PROCEDURE mySproc
(
invoiceId IN NUMBER, -- Added comma
customerId IN NUMBER
)
IS
v_id NUMBER; -- ADDED
BEGIN
INSERT INTO myTable (INVOICE_ID)
VALUES (invoiceId)
returning id into v_id;
INSERT INTO anotherTable (ID, customerID)
VALUES (v_id, customerId);
END mySproc;
分享并享受。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.