プロが教えるわが家の防犯対策術!

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」で作成されています。


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

A 回答 (1件)

「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
    • good
    • 1
この回答へのお礼

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

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

お礼日時:2014/08/25 23:33

お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!

このQ&Aを見た人はこんなQ&Aも見ています

関連するカテゴリからQ&Aを探す