今天,同事在一个10g的数据库创建索引时,中间kill了这个进程,当再次重建的时候发生了如下错误:
ALTER INDEX  "URS"."IDX_ACCT_REG_IP"    REBUILD PARTITION SYS_P1119  online
*
ERROR at line 1:
ORA-08104: this index object 105853 is being online built or rebuilt

看来数据字典中这个索引创建的信息并没有被清除,解决办法:
最后解决办法:
DECLARE
 isClean BOOLEAN;
BEGIN
  isClean := FALSE;
  WHILE isClean=FALSE
  LOOP
    isClean := dbms_repair.online_index_clean(
    dbms_repair.all_index_id, dbms_repair.lock_wait);
    dbms_lock.sleep(10);
  END LOOP;
END;
/
online_index_clean,这个过程是10g才提供的,对于9i,没有试过,不知道会不会发生这个问题,如果出现,看来就比较麻烦了。