Oracle
 sql >> Datenbank >  >> RDS >> Oracle

ORA-04084:Neue Werte für diesen Triggertyp können nicht geändert werden

Wie in den Kommentaren angefordert, mache ich meinen Kommentar als Antwort.

Ihr Problem besteht darin, dass Sie versuchen, einen Wert zu ändern, NACHDEM der Wert beibehalten wurde. Versuchen Sie, Ihren Trigger auf BEFORE zu ändern als:

CREATE OR REPLACE TRIGGER TOTAL
  BEFORE UPDATE OR INSERT ON ORDER_ITEMS
  FOR EACH ROW
DECLARE
  temp  NUMBER;
  today DATE;
BEGIN
    temp:=(:NEW.item_price-:NEW.discount_amount)*:NEW.quantity;
    today := CURRENT_DATE;
    :NEW.TOTAL := temp;
    dbms_output.put_line('Updated on:' || today || ' item number: '
                           || :NEW.item_id || 'order number:' || :NEW.order_id 
                           || 'total: ' ||:NEW.total);
END;
/