Oracle 運用に関するエラー
ORA-01466: データを読み込めません - 表定義が変更されました
EXPORT ユーティリティの実行時
指定された表をエクスポートします... 従来型パス経由...
.. 表 XXXXXをエクスポート中
EXP-00056: Oracleエラー1466が発生しました。
ORA-01466: データを読み込めません - 表定義が変更されました
エクスポートは正常に終了しましたが、警告が発生しました。
原因
システム日付を現在日付より未来にしたことがあり、かつ、そのときに スキーマオブジェクト に修正を加えている。
この状態で エクスポートユーティリティ を一貫性のあるオプション付き(CONSISTEN=Y) で実行するとオブジェクトの定義にタッチした日付が処理開始より未来になっている。そのためエクスポート処理中に一部の定義が変更されたと認識されてしまい、一貫性のあるエクスポートができないと判断される。
対応
オブジェクトのもつ最終更新日が未来になっているため、この日付を現在日付に再設定する。テーブルの場合には ALTER TABLE で NULL 属性を一時的に変化させたり、この機会に ALTER TABLE MOVE で表を再構成するなどしてもよいだろう。(気になるなら CONSISTENTS=N で個別にバックアップしておく)
- エラーの出る可能性のあるスキーマオブジェクトを見つける。
SQL> column object_name format a30
SQL> select object_name, created, last_ddl_time, timestamp
from user_objects
where last_ddl_time >= sysdate
- 再定義したのち last_ddl_time, timestamp が更新されるのを確認する。
SQL> column object_name format a30
SQL> select object_name, created, last_ddl_time, timestamp
from user_objects
where object_name = 'XXXXX'
システム日付を変更するテストをしたいとき
一覧ページへ戻る
OTN (Oracle Technology Network)によるエラーメッセージによる情報だけでは、対処に困ったエラーについてのプラクティスです。
ベスト・プラクティスというわけではないので、書いてあることに固執しないで広い視野でエラー対応してください。