解决ORA-O4O89:无法对sys拥有的对象创建触发器
2011-08-26 15:49
681 查看
这两天学习oracle的触发器,创建触发器的时候时不时会遇到:“无法对sys拥有的对象创建触发器”的错误提示。
使用的用户登录是自己创建的新用户XXX下登录,之后再XXX用户下创建一个名为MECITY的表空间,接着在XXX用户下的MECITY表空间下创建名为CITYS的表。
然后,想给CITY表建立一个触发器,使每次插入数据时表的ID列会自动增加1。
创建触发器语句:
CREATE TRIGGER TRI_CITY_ID
BEFORE INSERT ON CITYS
FOR EACH ROW
BEGIN
SELECT CITY_ID.NEXTVAL INTO :NEW.ID FROM CITYS;
END;
错误提示:ORA-O4O89:无法对sys拥有的对象创建触发器。
首先在tables里面找到该表,右键查看该表的properties,里面有owner。出现上面这种情况一定是owner为sys。
下面提供一种解决方法:
为当前登录用户创建名称为该表名称相同的表,数据从sys的表里面拷贝。如:
CREATE TABLE XXX.CITYS AS SELECT * FROM SYS.CITYS;
然后删除掉sys底下的表。
DROP TABLE SYS.CITYS;
再执行创建触发器语句。
使用的用户登录是自己创建的新用户XXX下登录,之后再XXX用户下创建一个名为MECITY的表空间,接着在XXX用户下的MECITY表空间下创建名为CITYS的表。
然后,想给CITY表建立一个触发器,使每次插入数据时表的ID列会自动增加1。
创建触发器语句:
CREATE TRIGGER TRI_CITY_ID
BEFORE INSERT ON CITYS
FOR EACH ROW
BEGIN
SELECT CITY_ID.NEXTVAL INTO :NEW.ID FROM CITYS;
END;
错误提示:ORA-O4O89:无法对sys拥有的对象创建触发器。
首先在tables里面找到该表,右键查看该表的properties,里面有owner。出现上面这种情况一定是owner为sys。
下面提供一种解决方法:
为当前登录用户创建名称为该表名称相同的表,数据从sys的表里面拷贝。如:
CREATE TABLE XXX.CITYS AS SELECT * FROM SYS.CITYS;
然后删除掉sys底下的表。
DROP TABLE SYS.CITYS;
再执行创建触发器语句。
相关文章推荐
- ORA-04089: 无法对 SYS 拥有的对象创建触发器
- ORA-04089:无法对SYS拥有的对象创建触发器
- ORA-04089: 无法对 SYS 拥有的对象创建触发器
- 无法对sys拥有的对象创建触发器
- 删除oracle数据库用户的dba权限(当出现同一用户DBA可以登录,normal不能登录)“无法对SYS拥有的对象创建触发器”
- ORA-04089: 没法对 SYS 拥有的对象创建触发器
- 关于调用线程无法访问此对象,因为另一个线程拥有该对象的问题的解决办法
- sqlserver 因为选定的用户拥有对象,所以无法除去该用户的解决方法
- 杀毒后出现“Automation服务器无法创建对象”问题的解决方法
- ORA-01658: 无法为表空间space中的段创建 INITIAL 区解决办法
- sql2008出现问题“因为无法为数据库 'MRsys' 中的对象 'dbo.T_USER_1311_DATA' 分配空间, 'PRIMARY' 文件组已满。请删除不需要的文件..."问题,解决了
- win7 X64 安装Oracle VM VirtualBox后无法创建com对象问题(已解决)
- 由于以下错误: 0x80040154,无法创建 CLSID 为“{E436EBB3-524F-11CE-9F53-0020AF0BA770}”的 COM 对象。怎么解决这个问题?
- oracle 10g\11g用imp导入数据的时候报错:ORA-01658: 无法为表空间 MAXDATA 中的段创建 INITIAL 区 错误解决
- SQL数据库因为选定的用户拥有对象,所以无法除去该用户的解决办法
- "因为选定的用户拥有对象,所以无法除去该用户"解决方法
- 给图片添加水印,解决GIF添加水印的问题(无法从带有索引像素格式的图像创建 Graphics 对象)
- ORA-01658: 无法为表空间“DDBS1”中的段创建 INITIAL 区 解决办法
- WPF调用线程 解决“调用线程无法访问此对象,因为另一个线程拥有该对象“问题
- 此用户拥有对象,无法删除用户解决办法