【发布时间】:2015-11-07 22:03:55
【问题描述】:
我必须创建一个存储过程来创建发票表条目。该过程应允许用户通过提供新的发票编号 x 和客户 ID y 来插入记录。日期应为当前系统日期,小计、税金和总计字段应为 0。
我为这个问题写了这段代码:
SET SERVEROUTPUT ON
CREATE OR REPLACE PROCEDURE InoviceEntry_step1(X in number, Y in number)
as
begin
insert into INVOICE(inv_number, cus_code, inv_date,
inv_subtotal, inv_tax, inv_total)
values (X, Y, sysdate, 0, 0, 0);
end;
/
CALL InoviceEntry_step1 (1009,11111);
调用引发错误:
Error report - SQL Error: ORA-02291: integrity constraint (USER.SYS_C00109369) violated - parent key not found ORA-06512: at "USER.INOVICEENTRY_STEP1", line 6 02291. 00000 - "integrity constraint (%s.%s) violated - parent key not found" *Cause: A foreign key value has no matching primary key value. *Action: Delete the foreign key or add a matching primary key.
我做错了什么,有没有更好的方法可以做到这一点?
【问题讨论】:
标签: sql oracle plsql foreign-keys ora-02291