oracle - 创建一个插入 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
正如我们刚刚被教导如何使用一个表来做的那样,我刚刚添加了与原始代码格式相同的第二个表,所以我不确定它是否正确或者是否只有一些小错误。任何帮助表示赞赏,谢谢。
解决方案
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
这种差异是您需要如何修复代码的重要线索。
推荐阅读
- python - json编码没有考虑python中的编码参数
- sql - 从存储过程插入时避免锁定表
- c++ - 如何在构造函数 C++ 中使用静态变量?
- java - 如何生成随机字符串
- c - 无法使用箭头键在诅咒中移动光标 (C)
- java - 如何在输出结束时摆脱空间?
- sql - 是否可以为具有 O(n) 运行时复杂度的“获取最大 2”编写 T-SQL 查询?
- php - 在 PHP 中基于 CSV2 查找和替换 CSV1 中的列
- matlab - 我们如何在不使用 matlab 中的任何函数 rand 的情况下创建随机数?
- javascript - 我们如何更改 JavaScript 中的日期格式?