Oracle
 sql >> Base de données >  >> RDS >> Oracle

ORA-04084 :impossible de modifier les NOUVELLES valeurs pour ce type de déclencheur

Comme demandé dans les commentaires, je fais mon commentaire en réponse.

Votre problème est que vous essayez de modifier une valeur APRÈS que la valeur ait été conservée, essayez de changer votre déclencheur en BEFORE comme :

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;
/