Sql 触发如何修复这些错误

Sql 触发如何修复这些错误,sql,database,oracle,triggers,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 Transac

我正试图为每一部电影迟交一天扣动扳机,因为未付余额中会增加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:必须声明标识符“新建。返回日期”

您必须在
新建之前使用
。另外,我认为您不需要
选择
句子:

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;

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

PLS-00049:绑定变量'DATE\u RETURNED'错误的绑定变量'DATE\u RETURNED'对于DATE due,我也会收到相同的错误,这就是为什么我认为我需要一个select语句我犯了一个错误。请现在检查。它工作完美唯一的问题是它更新了每一个成员的未付余额,所以我认为这与我的更新声明有关谢谢!您的
UPDATE
语句没有
WHERE
子句,因此它当然会更新每一行。您必须添加一些对表中任何主键的引用。啊,是的,谢谢您,我刚刚添加了where,现在可以很好地工作了,非常感谢!!