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

SQL-Triggerfehler – ungültiger Trigger

Sie können show errors verwenden nachdem Sie compiled with warnings sehen , oder fragen Sie die user_errors ab ansehen, um später zu sehen, was falsch ist.

Eine offensichtliche Sache ist, dass Sie old nicht vorangestellt haben Referenz mit Doppelpunkt:

CREATE or REPLACE TRIGGER BeforeUpdateReport 
BEFORE 
UPDATE ON REPORT 
FOR EACH ROW 
Begin 
   INSERT INTO reportUpdate 
   Values(:old.ID,sysdate); 
END;
/

Es ist auch besser, die Zieltabellenfelder im insert anzugeben Aussage:

   INSERT INTO reportUpdate (report_id, updatedate)
   Values(:old.ID,sysdate); 

Aber Sie haben update_date in Ihrem Tabellenerstellungsskript als number(32) definiert , was keinen Sinn macht. Wie @realspirituals betonte, sollte es sein:

CREATE TABLE reportUpdate (report_id number, updatedate date);