触发器SQL错误SQL语法

触发器SQL错误SQL语法,sql,oracle,syntax-error,Sql,Oracle,Syntax Error,你好,我正在一点一点地让触发器工作。但是下面的代码给出了错误 错误10,1:PLS-00103:Påträffade符号插入 换句话说,它指的是我在注册中的插入,并表示无法找到符号插入。我真的不明白为什么这是可能的。非常感谢你的帮助 create or replace TRIGGER TR_Put_To_Waits INSTEAD OF INSERT ON Registrations REFERENCING NEW AS newline FOR EACH ROW DECLARE Hasn

你好,我正在一点一点地让触发器工作。但是下面的代码给出了错误 错误10,1:PLS-00103:Påträffade符号插入 换句话说,它指的是我在注册中的插入,并表示无法找到符号插入。我真的不明白为什么这是可能的。非常感谢你的帮助

create or replace TRIGGER TR_Put_To_Waits   
INSTEAD OF INSERT ON Registrations
REFERENCING NEW AS newline
FOR EACH ROW
DECLARE 
HasntPassedCourse INT;
BEGIN
SELECT COUNT(*) INTO HasntPassedCourse
FROM PassedCourses P
WHERE P.code != :newline.code AND P.cid != :newline.cid;

dbms_output.Put_line(HasntPassedCourse);

END;

insert into REGISTRATIONS
(CID,CODE,STATUS)
values
('arne','tda401','registered');
rollback; 

不能在表上创建INSTEAD OF触发器。在之前或之后尝试。

您使用的前端工具是什么?您可能需要在结束后的新行上添加一个/来告诉前端您的PL/SQL块已完成。如果您使用的是GUI,您可能还需要突出显示create trigger DDL语句并执行它。但是不同的前端可能有不同的逻辑来区分不同的语句。如果注册是一个视图,而不是一个表,如果您想定义一个instead of触发器,那么定义一个不插入基表的触发器是没有意义的。oracle sql developer请在执行insert语句之前检查触发器是否存在且有效