我正试图触发每天电影返回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'
答案 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;
如果您收到任何错误,请告诉我。