现象:执行重建索引是报错
alter index CLAIMDATA.CLM_ATP_TASK_TYPE REBUILD ONLINE;
ORA-08104: 该索引对象79931正在被联机建立或重建
解决:
SQL> DECLARE
2 RetVal BOOLEAN;
3 OBJECT_ID BINARY_INTEGER;
4 WAIT_FOR_LOCK BINARY_INTEGER;
5
6 BEGIN
7 OBJECT_ID := 79931;
8 WAIT_FOR_LOCK := NULL;
9 RetVal := SYS.DBMS_REPAIR.ONLINE_INDEX_CLEAN ();
10 COMMIT;
11 END;
12 /
PL/SQL procedure successfully completed.
执行 SYS.DBMS_REPAIR.ONLINE_INDEX_CLEAN 时,很久不完成,然后查看是不是锁表了,是有session对index所在的表做UPDATE,全部kill掉,然后就顺利执行完了。