Oracle
 sql >> Base de Dados >  >> RDS >> Oracle

Erro de gatilho SQL - gatilho inválido


Você pode usar show errors depois de ver compiled with warnings , ou consulte os user_errors view para ver o que está errado mais tarde.

Uma coisa óbvia é que você não prefixou o old referência com dois pontos:
CREATE or REPLACE TRIGGER BeforeUpdateReport 
BEFORE 
UPDATE ON REPORT 
FOR EACH ROW 
Begin 
   INSERT INTO reportUpdate 
   Values(:old.ID,sysdate); 
END;
/

Também é melhor especificar os campos da tabela de destino no insert declaração:
   INSERT INTO reportUpdate (report_id, updatedate)
   Values(:old.ID,sysdate); 

Mas você tem update_date definido em seu script de criação de tabela como number(32) , o que não faz sentido. Como @realspirituals apontou, deve ser:
CREATE TABLE reportUpdate (report_id number, updatedate date);