Email: service@parnassusdata.com 7 x 24 online support!

Oracle ORA-8103 の主な発生原因について

Oracle ORA-8103 の主な発生原因について

 

ORACLEデータベース によくあるエラ の解決策

プロのOracle Databaseの復旧サービスを提供
携帯番号: +86 13764045638 メール:service@parnassusdata.com

 

適用範囲:

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 の両方が変更される場合もありますので、表および索引のオブ
ジェクト名をそれぞれ指定してください。