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

Errore trigger SQL - trigger non valido

Puoi utilizzare show errors dopo aver visualizzato compiled with warnings oppure esegui una query su user_errors visualizza per vedere cosa c'è che non va in seguito.

Una cosa ovvia è che non hai anteposto il old riferimento con due punti:

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

È anche meglio specificare i campi della tabella di destinazione in insert dichiarazione:

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

Ma hai update_date definito nello script di creazione della tabella come number(32) , che non ha senso. Come ha sottolineato @realspiritualis, dovrebbe essere:

CREATE TABLE reportUpdate (report_id number, updatedate date);