DBAtlas · データベース運用アトラス

ORA-01466: unable to read data - table definition has changed(データを読み取れない - 表定義が変更された)

Oracle

意味

過去の時点のデータを読み取るクエリ (Flashback Query、AS OF、または読み取り一貫性) が、照会した過去の時点から現在までの間に表定義 (DDL) が変更されたため失敗した。Oracle は現在の定義でその時点のデータを安全に読み取れない。

原因

Flashback/AS OF クエリの対象タイムスタンプより後に、表に DDL (列の追加/削除、型の変更) が適用された。また、クライアントとサーバー間の時刻差や、ごく直近 (数秒前) の過去のクエリは、SCN/時刻の分解能によりこのエラーになることがある。

対処方法

表の DDL 変更より前の時刻/SCN に対してフラッシュバッククエリを実行する。可能であれば、タイムスタンプではなく正確な SCN を使用する (AS OF SCN)。ごく直近の過去のクエリでは、数秒さかのぼる。恒久的な履歴アクセスが必要な場合は、DDL ではなくバージョン管理表やアーカイブ表の設計を検討する。

DBAtlas で開く →

同じデータベースの他の項目