sql >> Databasteknik >  >> RDS >> Oracle

SQL-triggerfel - ogiltig trigger

Du kan använda show errors efter att du ser compiled with warnings , eller fråga efter user_errors visa för att se vad som är fel senare.

En uppenbar sak är att du inte har prefixet den old referens med kolon:

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

Det är också bättre att ange måltabellsfälten i insert uttalande:

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

Men du har update_date definieras i ditt tabellskapande skript som number(32) , vilket inte är vettigt. Som @realspirituals påpekade borde det vara:

CREATE TABLE reportUpdate (report_id number, updatedate date);



  1. Så här går du runt ORA-02014:kan inte välja FÖR UPPDATERING från vy med DISTINCT, GROUP BY, etc

  2. Hur man lägger till rankningspositioner till rader med DENSE_RANK() i SQL

  3. Hänvisar till ett kolumnalias i en WHERE-klausul

  4. Codeigniter, mysql, select_max och lägg till 1 innan du infogar en annan post