我们在线重建索引时,由于各种原因,临时中断了创建工作,这时,我们再去创建索引时,就会报:ora-08104的错误,怎么也不能创建,怎么办呢,第一次遇到这个问题,有点傻眼了吧,
这个时候,我们必须要把前面的创建清除,才可以继续.
如下:
SQL> alter index NQ_REGISTER_DATE_2 rebuild online tablespace TS_EXCHANGE;
alter index NQ_REGISTER_DATE_2 rebuild online tablespace TS_EXCHANGE
ORA-08104: 该索引对象 498894 正在被联机建立或重建
察看498894,正好就是这个索引:
Select object_name From dba_objects Where object_id=498894;
NQ_REGISTER_DATE_2
解决办法:
SQL> DECLARE
2 RetVal BOOLEAN;
3 OBJECT_ID BINARY_INTEGER;
4 WAIT_FOR_LOCK BINARY_INTEGER;
5
6 BEGIN
7 OBJECT_ID := 498894;
8 WAIT_FOR_LOCK := NULL;
9 RetVal := SYS.DBMS_REPAIR.ONLINE_INDEX_CLEAN ();
10 COMMIT;
11 END;
12 /
之后,再去创建,就可以顺利创建了 .
SQL> alter index NQ_REGISTER_DATE_2 rebuild online tablespace TS_EXCHANGE;
|