Oracle
 sql >> база данни >  >> RDS >> Oracle

Грешка в SQL тригера - невалиден тригер

Можете да използвате show errors след като видите compiled with warnings , или потърсете user_errors прегледайте, за да видите какво не е наред по-късно.

Едно очевидно нещо е, че не сте поставили префикс old препратка с двоеточие:

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

Също така е по-добре да посочите целевите полета на таблицата в insert изявление:

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

Но имате update_date дефиниран във вашия скрипт за създаване на таблица като number(32) , което няма смисъл. Както посочи @realspirituals, трябва да бъде:

CREATE TABLE reportUpdate (report_id number, updatedate date);



  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Редове към колона в ORACLE

  2. Моят TO_DATE изглежда не функционира правилно

  3. Каква е причината за грешка ORA-38104 при сливане на SQL?

  4. ORACLE - ORA-01843:не е валиден месец

  5. как да актуализирате идентификатора от една таблица в друга