错误信息:
java.sql.SQLException: ORA-01578: ORACLE 数据块损坏 (文件号 17, 块号 315703)
ORA-01110: 数据文件 17: 'D:\ORACLE\PRODUCT\10.2.0\ORADATA\ORCL\DEMO.DBF'
可能的原因有很多,比如物理磁盘坏块,比如Oracle故障……,反正不好定位具体的问题
简单、粗暴的解决办法:
1、查询有坏块的表
select tablespace_name, segment_type, owner, segment_name
from dba_extents
where file_id = 17
and 315703 between block_id and block_id + blocks - 1;
2、清空表中的数据
truncate table tabelName;
3、从数据备份中恢复数据
根据备份方式恢复单表数据,如果是测试环境,此步骤就可省略。。。,重新跑测试数据就可以了
其他说明,删除表重建也可以,目的都是跳过Oracle数据文件的坏块
参考资料:
EXPORA-01578(数据块损坏) 错误解决方法 http://www.itpub.net/thread-1045172-1-1.html