日期:2014-05-17  浏览次数:21156 次

ORA-04089: 无法对 SYS 拥有的对象创建触发器
大家下,我在sys下创建了一个student表,现在想在这个表上创建一个触发器,实现的功能是:如果删除student上的id=11的记录,则弹出'不允许删除!'的提示。
代码如下:
create or replace trigger student_delete
after delete on student
for each row
begin
if old.student.id=11 then
raise_application_error(-20000,'不允许删除!');
end if;
end;

------解决方案--------------------
你创建触发器的用户是什么用户?
------解决方案--------------------
哦,确实是这样的。那就记住吧,不能对sys用户创建的表建触发器。换个用户就行了。
------解决方案--------------------
sys用户不是用来干这事的
------解决方案--------------------
没有啊 是权限问题
grant database administrator trigger to  xx;
------解决方案--------------------
:old.student.id=11
------解决方案--------------------
引用:
开始创建zhenjiang用户的时候,我是授予了connect,resourse,dba的权限,现在按照版主的说法
grant database administrator trigger to zhenjiang
提示以下错误信息:
SQL> conn sys
Connected to Oracle Database 10g Enterprise Edition……


不好意思哈 哦搞错了  ADMINISTER DATABASE TRIGGER
------解决方案--------------------
什么是zhenjiang用户以管理员身份登陆?