Я пытаюсь создать триггер для класса, который обновляет баланс клиента в зависимости от того, на сколько дней позже или раньше был возвращен товар.У меня есть чартерная таблица с датой и датой возврата, триггер предназначен для срабатывания только при обновлении даты возврата.Затем триггер берет разницу между датой возврата и датой исполнения и сохраняет это значение в переменной.У меня есть ряд утверждений if else, которые определяют, был ли товар возвращен с опозданием или досрочно, а затем умножают количество дней на плату за просрочку или ранний бонус.Затем он обновляет баланс клиента в таблице клиентов до значения переменной комиссии.Oracle говорит, что у меня есть синтаксическая ошибка в моей конечной инструкции, и я не уверен, что не так.
CREATE OR REPLACE TRIGGER Fee_Trigger
AFTER UPDATE ON CHARTER
FOR EACH ROW
WHEN ((:NEW.Return_Date <> :OLD.Return_Date AND :NEW.Return_Date IS NOT
NULL))
DECLARE
Fee NUMBER;
BEGIN
Fee := (:NEW.Return_Date - Due_Date);
IF Fee > 0 THEN Fee := (Fee * 75) ;
ELSE IF Fee < 0 THEN Fee := (Fee * 25);
ELSE IF Fee = 0 THEN FEE := Fee;
END IF;
UPDATE CUSTOMER
SET Customer_Balance = Fee
WHERE CustomerID = :NEW.CustomerID
END;