Oracle
 sql >> Baza danych >  >> RDS >> Oracle

Błąd wyzwalacza SQL - nieprawidłowy wyzwalacz

Możesz użyć show errors po zobaczeniu compiled with warnings lub zapytaj user_errors Zobacz, co jest nie tak później.

Jedną z oczywistych rzeczy jest to, że nie dodałeś przedrostka old odwołanie z dwukropkiem:

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

Lepiej jest również określić pola tabeli docelowej w insert oświadczenie:

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

Ale masz update_date zdefiniowany w skrypcie tworzenia tabeli jako number(32) , co nie ma sensu. Jak wskazał @realspirituals, powinno to być:

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. Jak mogę wyświetlić WSZYSTKIE granty otrzymane przez użytkownika?

  2. Znacznik czasu Oracle do serwera sql DateTime

  3. Czy Oracle DB obsługuje wiele (równoległych) operacji na połączenie?

  4. Jak zaktualizować kolumnę TIMESTAMP na TIMESTAMP WITH TIME ZONE w Oracle?

  5. Jak zaprojektować model danych, który zajmuje się obecnymi pracownikami i prognozowanymi pracownikami?