sql >> Database teknologi >  >> RDS >> Oracle

ORA-04084:kan ikke ændre NYE værdier for denne triggertype

Som anmodet i kommentarer fremsætter jeg min kommentar som et svar.

Dit problem er, fordi du forsøger at ændre en værdi EFTER værdien blev bevaret, prøv at ændre din trigger til BEFORE som:

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



  1. Hvad er den bedste måde at skrive det første bogstav i hvert ord i en streng i SQL Server med stort

  2. Hvordan forbinder man jsonb-array-elementer i Postgres?

  3. Kør Oracle-importkommando fra Java, og se konsoloutput

  4. SQLAlchemy, Declarative, PostgreSQL:kan ikke oprette tabeller