当前位置: 代码迷 >> Oracle开发 >> ORA-04089: 没法对 SYS 拥有的对象创建触发器
  详细解决方案

ORA-04089: 没法对 SYS 拥有的对象创建触发器

热度:3999   发布时间:2013-02-26 00:00:00.0
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用户以管理员身份登陆?