ORA-08103: object no longer exists(对象不再存在)
Oracle含义
运行中的查询所访问的对象(表、索引、LOB 段)已不再存在,或其物理结构已改变。通常是在查询进行期间,对象底层发生了 DDL/TRUNCATE。
原因
在查询打开期间对同一对象执行了 TRUNCATE/DROP/SHRINK;移动(MOVE)或分区维护;索引/段损坏;访问 LOB 段时底层结构消失;并发 DDL 冲突。
解决方法
确认对象仍然存在且有效:SELECT status FROM user_objects WHERE object_name = 'NAME'; 重建相关索引/对象(REBUILD)或重新运行查询。避免在长时间运行的查询使用对象时对其执行 TRUNCATE/DROP。如果怀疑损坏,用 ANALYZE ... VALIDATE STRUCTURE 检查。
同一数据库的其他条目
- ORA-01427single-row subquery returns more than one row(单行子查询返回多个行)
- ORA-12899value too large for column(列的值太大)
- ORA-30926unable to get a stable set of rows in the source tables(无法在源表中获得一组稳定的行)
- ORA-01843not a valid month(无效的月份)
- ORA-14400inserted partition key does not map to any partition(插入的分区关键字未映射到任何分区)
- ORA-01536space quota exceeded for tablespace(超出表空间的空间限额)
- direct path read等待:会话绕过 buffer cache 将块直接读入 PGA