select count(*) from tablename 时报:ORA-01410: invalid ROWID,以前从没出现过,什么原因?
ORA-01410 invalid ROWID Cause: A ROWID was entered incorrectly. ROWIDs must be entered as formatted hexadecimal strings using only numbers and the characters A through F. A typical ROWID format is ?00001F8.0001.0006? Action: Check the format, then enter the ROWID using the correct format. ROWID format: block ID, row in block, file ID 解决方式: 应该是索引块出了问题,rebuild一下就好了,最近的这个有些不一样。 是sqlldr通过direct方式加载,在维护索引的时候,如果此时机器突然死机,重启之后就会报出这样的错误,rebuild一下就可以了。 原贴地址: http://www.itpub.net/98369.html (1). CATS来解决 (2). 把这张表export/import一下 (3). 解决ORA-01410:Invalid ROWID的一般步骤 =========================================================== 1.使用ANALYZE TABLE <table> VALIDATE STRUCTURE CASCADE验证表和索引中的rowid是否有效. 2.设置event = "1410 trace name errorstack level 3" 跟踪,分析跟踪文件. " My suggestion: 1)do the above steps, 1)possibly the index of this table needs rebuild 2)data file corruption: use dbverify Example To verify the integrity of the data01.dbf data file, starting with block 1 and ending with block 500, you execute the following command: UNIX $ dbv /users/DB00/u03/data01.dbf start=1 end=500 This should be similar to "analyze table" Hope this is helpful. |