Oracle
 sql >> Cơ Sở Dữ Liệu >  >> RDS >> Oracle

Lỗi trình kích hoạt SQL - trình kích hoạt không hợp lệ

Bạn có thể sử dụng show errors sau khi bạn thấy compiled with warnings hoặc truy vấn user_errors xem có gì sai sau này không.

Một điều hiển nhiên là bạn chưa đặt tiền tố cho old tham chiếu với dấu hai chấm:

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

Tốt hơn là chỉ định các trường của bảng mục tiêu trong insert tuyên bố:

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

Nhưng bạn có update_date được xác định trong tập lệnh tạo bảng của bạn là number(32) , điều đó không có ý nghĩa. Như @realspirituals đã chỉ ra, nó phải là:

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. Kết quả Cache

  2. SQL Server Tương đương với Oracle 'CONNECT BY PRIOR' và 'ORDER SIBLINGS BY'

  3. Thủ tục lưu trữ Oracle

  4. Oracle cắt bỏ khoảng trắng ở bên trong chuỗi

  5. Mối quan hệ Nhiều-Nhiều trong Khung thực thể với thông tin về mối quan hệ