触发如何修复这些错误

时间:2014-12-05 17:29:27

标签: sql database oracle triggers

我正试图触发每天电影返回2美元被添加到未付余额中。退货和到期日期在交易表中,未付余额在成员表中。这是我到目前为止所得到的,我得到的任何帮助或建议的错误都会很棒我真的很难与这个。

Create or Replace Trigger Late_Rule
BEFORE INSERT ON Transaction
For each Row
DECLARE

Fee Number;

BEGIN

Select Date_Due, Date_Returned  
From Transaction;

If new.Date_Returned > new.Date_Due
THEN 
Fee := (new.Date_Returned - new.Date_Due) * 2;


END IF;

Update Member
    Set Unpaid_Bal = Unpaid_Bal + Fee;
end;
/
show error;

7/1 PLS-00428:SELECT语句中应该有一个INTO子句 10/1 PL / SQL:语句被忽略
10/4 PLS-00201:必须声明标识符'NEW.DATE_RETURNED'

1 个答案:

答案 0 :(得分:1)

您必须在:之前使用new。另外我认为你不需要select句子:

Create or Replace Trigger Late_Rule
BEFORE INSERT ON Transaction
For each Row
DECLARE

Fee Number;

BEGIN


If :new.Date_Returned > :new.Date_Due
THEN 
Fee := (:new.Date_Returned - :new.Date_Due) * 2;


END IF;

Update Member
    Set Unpaid_Bal = Unpaid_Bal + Fee;
end;

如果您收到任何错误,请告诉我。