通过上面的处理,就避免了因为15条数据导致整个门诊费用记录无法导出的问题,虽然丢失了15条数据,但是对于整个”门诊费用记录”表数据代价来说,这15条数据的丢失付出是值得的,而且我们可以后续根据逻辑关系,把这15条数据进行补充插入就行。
总结本次ORA-08103错误出现在HIS业务的关键表上,问题还是比较严重,但是通过分析后处理过程并不复杂,可见问题的分析起到关键的作用,通过本次案例,我们至少能够总结出以下几点经验:
1. 对待重要的数据,在无法根本解决的情况下,要懂得取舍。如本案例,再没有归档,无法彻底修复数据的情况下,为保证其他数据的可用,只能丢掉问题数据,对于整个环境来说,这点的代价付出是值得。
2. 尝试通过其他途径,合理的绕开错误。如本案例中,全表扫描数据会报错,在对数据进行转移的时候,我们可以通过指定索引扫描方式执行查询,避免对整个表的全表扫描。
我们常常处理问题的时候,应该打开自己的思维,脱离单个事情而从更广的范围看待,比如本案例,之前我们的技术人员陷入了死胡同,一直在分析坏块并想办法修复,但是对于整个业务来说,这点坏块的数据是可以舍弃,我们更应该看重的是剩余的数据,那些才是价值所在。
How I solved the ORA-08103: object no longer exists problem(13028)