跳转至

Oracle导致ORA08103报错

Oracle导致ORA08103报错

背景

最近遇到一个BUG,偶发出现ORA08103:对象不存在的错误,因为该接口只有查询功能,最开始以为是代码问题,类似空指针异常,一直未找到原因。后来百度才发现这是oracle层面的错误,经过排查才发现同一时间点,有另外一个功能对查询中某个表,进行了truncate操作,正是这个原因导致了对象不存在异常。

问题原因

Oracle ORA-06512&ORA-08103对象已不存在之查询期间表上索引被删除

导致ORA08103报错的可能原因有:

1、被操作的对象确实被其他用户删除掉

2、被操作的对象被执行了truncate操作

3、系统表空间数据块损坏导致的对象字典信息与表所在表空间数据对象信息不一致

4、被操作对象发生了DDL例如加字段操作

5、被操作对象上的索引被删除,操作使用到了对象上的索引