この記事ではOracleのインポート時に発生するエラー(IMP-00015)について解説します。
IMP-00015について
テーブル単位でバックアップを取った後、インポートコマンドを実行したが
1 2 3 4 | imp usr1/pass1@db1 tables=test_table file=/home/user/test_table.dmp IMP-00015: 次の文は、オブジェクトがすでに存在するため失敗しました: ~省略~ インポートは正常に終了しましたが、警告が発生しました。 |
というエラーが出る場合があります。
このエラーが出た場合、テーブルをSELECT(参照)してもレコードはインポートされていません。
レコード追加時にエラーとなるとオラクルはデータ登録をSKIPします。
回避策
"IGNORE=Y"オプション付きで、データをImportする。
「オブジェクトは既に存在します」というエラーを無視して 表に行データの挿入します。
デフォルトは"IGNORE=N"となってます。オブジェクト作成エラーが発生すると 行データは挿入されずにスキップされます。
1 | imp usr1/pass1@db1 tables=test_table file=/home/user/test_table.dmp IGNORE=Y |
ログを出力したい場合は
1 2 | imp usr1/pass1@db1 tables=test_table file=/home/user/test_table.dmp IGNORE=Y log=/home/user/emp.log |
まとめ
インポート時はコマンドのオプションなどに気を付けて利用しましょう。
1 2 3 4 5 6 7 8 | -- (1)インポートコマンド imp usr1/pass1@db1 tables=test_table file=/home/user/test_table.dmp -- (2)エラー行はスキップしてインポート imp usr1/pass1@db1 tables=test_table file=/home/user/test_table.dmp IGNORE=Y -- (3) (2)+ログ出力 imp usr1/pass1@db1 tables=test_table file=/home/user/test_table.dmp IGNORE=Y log=/home/user/emp.log |
以下ページにSQLコマンドを表に纏めています。手が空いた時に定期更新しておりますので、よろしければご活用ください。
Oracle SQLコマンド:業務効率化のための実用的な一覧と使用方法
続きを見る
参考にしたサイト(impコマンドについて詳しく載っています)
[blogcard url="https://oracle-chokotto.com/ora_import.html"]