ORA-01410 invalid ROWID某种情况

来源:互联网 发布:大学生网络虚拟 编辑:程序博客网 时间:2024/05/17 00:55

 

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.