【发布时间】:2014-09-25 18:24:09
【问题描述】:
我正在尝试找出为什么会出现编译错误
CREATE OR REPLACE FUNCTION Get_balance_due
(order_id_f NUMBER)
RETURN NUMBER
AS
balance_due_f NUMBER;
BEGIN
SELECT SUM(total_amount) INTO balance_due_f
FROM order_lines, orders
WHERE order_id_f = order_line.order_id;
RETURN balance_due_f;
End;
错误是
LINE/COL ERROR
7/1 PL/SQL: SQL Statement ignored
9/20 PL/SQL: ORA-00918: column ambiguously defined
我尝试做一个常规的选择查询,它成功了
SELECT SUM(total_amount)
FROM order_lines, orders
WHERE order_lines.order_id = orders.order_id and orders.order_id = 12
该函数应该对所需的 order_id 进行金额求和并将其返回...
错误信息是:函数创建时出现编译错误
【问题讨论】:
-
@NicholasKrasnov 谢谢,还是一样的错误信息
-
您在
balance_due_f NUMBER末尾缺少一个分号。 -
@BobJarvis 谢谢,出现新错误
-
您正在使用表
order_lines和orders,但在WHERE 子句中您尝试与order_line.order_id进行比较。那么表名为order_lines还是order_line? -
是的,明白了 :) 谢谢它现在的工作