首页 > 解决方案 > 创建一个插入 2 个具有关系的表的过程

问题描述

我知道有很多这样的问题,但是对于我的学校项目,它需要遵循他们教给我们的相同技术,而其他答案并不是我想要的。

我的代码:

CREATE or REPLACE PROCEDURE add_hire1 (hire_no_in IN NUMBER, date_hired_in IN DATE, drop_off_in IN DATE, fk1_customer_id_in IN NUMBER, fk2_charge_no_in IN NUMBER,
charge_no_in, final_cost_in)
AS
BEGIN
 INSERT INTO hire(hire_no, date_hired, drop_off, fk1_customer_id, fk2_charge_no)
VALUES (hire_no_in, date_hired_in, drop_off_in, fk1_customer_id_in, fk2_charge_no_in);

 INSERT INTO charge(charge_no, final_cost)
 VALUES(charge_no_in, final_cost_in);
END add_hire1;

这是返回的错误:

ORA-24344: success with compilation error 
ORA-06512: at "SYS.WWV_DBMS_SQL_APEX_190100", line 590 
ORA-06512: at "SYS.DBMS_SYS_SQL", line 1658 
ORA-06512: at "SYS.WWV_DBMS_SQL_APEX_190100", line 576
ORA-06512: at "APEX_190100.WWV_FLOW_DYNAMIC_EXEC", line 2033

正如我们刚刚被教导如何使用一个表来做的那样,我刚刚添加了与原始代码格式相同的第二个表,所以我不确定它是否正确或者是否只有一些小错误。任何帮助表示赞赏,谢谢。

标签: oracleplsqloracle-apex

解决方案


ORA-24344 表示编译错误。如果您使用的是 SQL Developer 之类的工具,它应该会显示编译错误。但是你总是可以像这样自己找到它们:

select * from user_errors
where name = 'ADD_HIRE1'

如果我们有一个编译过的包然后我们改变它,现在它不编译我们知道我们需要专注于我们所做的改变。在这种情况下,我们可以看到您刚刚添加的两个参数……</p>

,
charge_no_in, final_cost_in)
AS

… 与其他参数的声明方式不同:

, fk1_customer_id_in IN NUMBER, fk2_charge_no_in IN NUMBER

这种差异是您需要如何修复代码的重要线索。


推荐阅读