ORA-25956: join index cannot be created on tables owned by SYS

文档解释

ORA-25956: join index cannot be created on tables owned by SYS

Cause: An attempt to create a join index was made, which failed because one of the tables was owned by SYS.

Action: Ensure that no join index related table is owned by SYS.

ORA-25956 错误提示:联合索引(join index)不能创建在SYS用户拥有的表上。

官方解释

ORA-25956 是一个被引发的错误,它表明你正尝试创建一个联合索引(join index)到一个SYS拥有的表。由于Oracle不允许创建联合索引到SYS拥有的表(这里指Oracle自带的核心表),因此就抛出了ORA-25956错误。

常见案例

当你在SYS用户所有的表上创建一个联合索引时,将会抛出ORA-25956错误,例如:

SQL> CREATE JOIN INDEX my_ji

2 ON my_table(col1, col2);

ERROR at line 1:

ORA-25956: join index cannot be created on tables owned by SYS

一般处理方法及步骤

1、创建一个具有可写权限的新用户,例如新用户叫“newuser”,且具有可写权限;

2、将SYS用户所有的表转移到新用户中,例如:ALTER SESSION SET CURRENT_SCHEMA=NEWUSER;

3、然后再创建联合索引,例如:CREATE JOIN INDEX my_ji ON my_table(col1, col2);

你可能感兴趣的