Email: [email protected] 7 x 24 online support!
Oracle ORA-8103 の主な発生原因について
ORACLEデータベース によくあるエラ の解決策
プロのOracle Databaseの復旧サービスを提供
携帯番号: +86 13764045638 メール:[email protected]
適用範囲:
Oracle Database - Enterprise Edition - バージョン 8.0.6.0 以降
この文書の内容はすべてのプラットフォームに適用されます。
目的
ORA-8103 の主な発生原因について説明します。
解決策
[概要]
本文書は ORA-8103 が発生する主な原因について解説します。
ORA-08103: 現在、指定したオブジェクトは存在しません。
[詳細]
ORA-8103 は、下記のような DDL 文により対象オブジェクトの DATA_OBJECT_ID
が変更された際に、対象オブジェクトをスキャンする SELECT 文などが実行さ
れることで発生する可能性があります。
例:
DATA_OBJECT_ID が変更される DDL 文例
- TRUNCATE TABLE
- ALTER TABLE ... MOVE
- ALTER INDEX ... REBUILD
DATA_OBJECT_ID は対象オブジェクトのセグメントのバージョンを管理していま
す。上記のような DDL 文が実行されると、セグメントのバージョンを管理して
いる DATA_OBJECT_ID が変更されます。また、SELECT 文などを実行することで
対象オブジェクトのセグメントのバージョンを確認するために DATA_OBJECT_ID
が参照されます。DATA_OBJECT_ID の変更と参照が並行で行われた場合に、
ORA-8103 が発生する可能性があります。
上記以外の DDL 文で DATA_OBJECT_ID が変更されるかを確認するためには、DDL
文を実行する前後で下記 SQL 文にて DATA_OBJECT_ID を確認してください。
SQL> select object_name, subobject_name, data_object_id from dba_objects
where object_name = '<確認対象オブジェクト名(表名および索引名)>';
DDL 文によっては、表の DATA_OBJECT_ID と、その表に付与されている索引の
DATA_OBJECT_ID の両方が変更される場合もありますので、表および索引のオブ
ジェクト名をそれぞれ指定してください。
