こんにちはゲストさん。会員登録(無料)して質問・回答してみよう!

解決済みの質問

oracleのimpdpでORA-39166

ORALCEのexpdpおよびimpdpの勉強のために自宅環境で操作していたところ、
impdpにてORA-39166(オブジェクトが見つからない)が発生してしまいした。
いろいろ調べてみたのですが、解決に至ってないためお力添えをお願いいたします。

【環境】
OS : linux ※CentOS(64bit)
ORALCE11gXE

【やりたいこと】
studyスキーマのTEST1テーブルをexpdpでエクスポート(content=data_only)し、
同じスキーマ内のTEST2テーブルにimpdpにてデータを入れる。

【発生までの操作】
1.expdp system/パスワード@XE directory=test_dir tables=study.TEST1 log=test_exp.log content=data_only

2.impdp system/パスワード@XE directory=test_dir dumpfile=expdat.dmp log=test_imp.log tables=study.TEST2 content=data_only

2の操作をしたタイミングで以下のメッセージ。

ORA-39002: invalid operation
ORA-39166: Object STUDY.TEST2 was not found.

【備考】
・TEST1およびTEST2はまったく同じテーブル構造です。studyユーザで作成してます。
・STUDY.TEST2は存在します。
(「sqlplus study/パスワード@XE」でログインしdesc TEST2で確認できるため)
・exdpは正常に終了しており、dumpファイルは「expdat.dmp」で作成されています。


以上です。
ご教授のほどよろしくお願いいたします。

投稿日時 - 2014-08-24 14:37:54

QNo.8728630

困ってます

質問者が選んだベストアンサー

「expdat.dmp」の中に「STUDY.TEST2」というオブジェクトの
情報がないという意味のメッセージが出ているので
そのまんまの内容だと思うのですが。

そもそもData Pumpはバックアップや別のスキーマ・インスタンスに
移動する際に使用する機能であって、同一スキーマの別テーブルに
移動する為に使用するものではなかったと思います。たぶん。

study.TEST1のデータを削除して以下のコマンドを実行したらどうなりますか?
impdp system/パスワード@XE directory=test_dir dumpfile=expdat.dmp log=test_imp.log tables=study.TEST1 content=data_only

投稿日時 - 2014-08-25 14:59:01

お礼

ご回答ありがとうございます。

Data Pumpの用法を間違っていたみたいですね。。
無事解決することができました。
助かりました、ありがとうございますm( )m

投稿日時 - 2014-08-25 23:33:21

このQ&Aは役に立ちましたか?

12人が「このQ&Aが役に立った」と投票しています

回答(1)