哎 这几天删除数据库里面的重复数据把我搞惨了
就用了 
delete from test a
 where rowid != (select max(rowid)
  from test b
  where a.id= b.id
  and a.pass = b.pass  
  and a.id between '0000000001' and '0001000000')就是执行这条语句的时候吧的错 ora-08102 未找打索引
开始以为是索引出了问题
但是执行'0001000001' - '0002000000' 这一段的时候删除数据又没有问题
好像这个不是索引的问题吧~

解决方案 »

  1.   

    为什么你的这个条件要加在内层查询里呢???a.id between '0000000001' and '0001000000'
      

  2.   

    between '0000000001' and '0001000000'
    这个肯定慢啊,做字符串比较。有其他转换方法?
      

  3.   

    ORA-08102 index key not found, obj# string, dba string (string)Cause: This is an internal error; possible inconsistency in index.Action: Send trace file to Oracle Support Services, along with information on reproducing the error.
      

  4.   

    我开始的时候通过alter index code rebuild online;
    重建索引了的
    但是很慢很慢啊  执行了大半个小时没执行完 是不是因为数据量太大了的原因啊 我这张表里面数据有上亿
      

  5.   

    没人知道么  alter index rebuild online 对于数据量有上亿的时候这种重建索引的话 大概需要多长时间啊还有就是这种在线重建索引的方法需要有要注意的什么嘛? 比如临时表之类的?
      

  6.   

    没人知道么  alter index rebuild online 对于数据量有上亿的时候这种重建索引的话 大概需要多长时间啊还有就是这种在线重建索引的方法需要有要注意的什么嘛? 比如临时表之类的?