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待機: バッファキャッシュを経由せず、セッションがブロックを直接 PGA に読み取っている