03U*_*Usr 0 sql plsql oracle10g
我有以下存储过程用于将数据插入表中:
CREATE OR REPLACE PROCEDURE mySproc
(
invoiceId IN NUMBER
customerId IN NUMBER
)
IS
BEGIN
INSERT INTO myTable (INVOICE_ID)
VALUES (invoiceId);
END mySproc;
/
Run Code Online (Sandbox Code Playgroud)
我想要做的是获取最后插入的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;
/
Run Code Online (Sandbox Code Playgroud)
我收到此错误:[错误] 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;
Run Code Online (Sandbox Code Playgroud)
分享和享受.
| 归档时间: |
|
| 查看次数: |
1950 次 |
| 最近记录: |