ORA-25956: join index cannot be created on tables owned by SYS ORACLE 报错 故障修复 远程处理
文档解释
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);