一般情况就是触发器的语法不正确。
触发器的一般语法如下:
CREATE [OR REPLACE] TRIGGER trigger_name
{BEFORE | AFTER }
{INSERT | DELETE | UPDATE [OF column [, column …]]}
[OR {INSERT | DELETE | UPDATE [OF column [, column …]]}...]
ON [schema.]table_name | [schema.]view_name
[REFERENCING {OLD [AS] old | NEW [AS] new| PARENT as parent}]
[FOR EACH ROW ]
[WHEN condition]
PL/SQL_BLOCK | CALL procedure_name;
首先检查下你登录的user和数据库是否一样。如果是一样的话,再检验该用户对dept的操作权限。最后你试着注释一些代码在运行看看,例如下面的代码:
create or replace trigger trig_del_department
after delete on dept
for each row
begin
if deleting then
--delete from emp where deptno=:old.deptno;
null;
end if;
end;
慢慢的排查错误。