Heim > Datenbank > MySQL-Tutorial > 解决ORA-O4O89:无法对sys拥有的对象创建触发器

解决ORA-O4O89:无法对sys拥有的对象创建触发器

WBOY
Freigeben: 2016-06-07 17:04:29
Original
1649 Leute haben es durchsucht

这两天学习oracle的触发器,创建触发器的时候时不时会遇到:ldquo;无法对sys拥有的对象创建触发器rdquo;的错误提示。使用的用户

这两天学习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;

再执行创建触发器语句。

linux

Quelle:php.cn
Erklärung dieser Website
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn
Beliebte Tutorials
Mehr>
Neueste Downloads
Mehr>
Web-Effekte
Quellcode der Website
Website-Materialien
Frontend-Vorlage