sql >> Database >  >> RDS >> Oracle

ORA-04084:kan de NIEUWE waarden voor dit triggertype niet wijzigen

Zoals gevraagd in opmerkingen, maak ik mijn opmerking als antwoord.

Uw probleem is dat u een waarde probeert te wijzigen NADAT de waarde behouden is gebleven, kunt u proberen uw trigger te wijzigen in BEFORE 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;
/



  1. Hoe maak je een procedure in Oracle SQL Developer?

  2. Hoe de positie van de regexp-overeenkomst in de tekenreeks in PostgreSQL te krijgen?

  3. Tel het voorkomen van het veld terwijl je groepeert op 2

  4. Moet ik primaire sleutelkolom(men) indexeren in Oracle?