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

Oracle Trigger ORA-04098:Triggeren er ugyldig og mislykket genvalidering

Oracle vil forsøge at genkompilere ugyldige objekter, som de omtales. Her er triggeren ugyldig, og hver gang du forsøger at indsætte en række, vil den forsøge at rekompilere triggeren og mislykkes, hvilket fører til ORA-04098 fejlen.

Du kan select * from user_errors where type = 'TRIGGER' and name = 'NEWALERT' for at se, hvilken eller hvilke fejl triggeren rent faktisk får, og hvorfor den ikke vil kompilere. I dette tilfælde ser det ud til, at du mangler et semikolon i slutningen af ​​insert linje:

INSERT INTO Users (userID, firstName, lastName, password)
VALUES ('how', 'im', 'testing', 'this trigger')

Så lav det:

CREATE OR REPLACE TRIGGER newAlert
AFTER INSERT OR UPDATE ON Alerts
  BEGIN
        INSERT INTO Users (userID, firstName, lastName, password)
        VALUES ('how', 'im', 'testing', 'this trigger');
  END;           
/

Hvis du får en kompileringsadvarsel, når du gør det, kan du show errors hvis du er i SQL*Plus eller SQL Developer, eller forespørg user_errors igen.

Dette forudsætter selvfølgelig dine Users tabeller har disse kolonnenavne, og de er alle varchar2 ... men formentlig vil du gøre noget mere interessant med aftrækkeren i virkeligheden.



  1. django.db.utils.OperationalError Kunne ikke oprette forbindelse til serveren

  2. Benchmarking Managed PostgreSQL Cloud Solutions - Del 1:Amazon Aurora

  3. PowerManager.PARTIAL_WAKE_LOCK android

  4. Sammenligning af objekter efter værdi. Del 6:Struktur ligestillingsimplementering