web-dev-qa-db-ja.com

Oracle 12cでimpdpを実行しようとすると、ORA-39001:無効な引数値が返されるのはなぜですか?

このコマンドをOracle 12c SE2で実行すると:

impdp system/Oracle_1@pdborcl directory=DATA_PUMP_DIR dumpfile=mydb.dmp nologfile=Y

私はこれを手に入れます:

ORA-39001:引数値が無効です

ORA-39000:不正なダンプファイルの指定

ORA-39088:ディレクトリ名DATA_PUMP_DIRが無効です

これを常に11gにインポートしていました。

これらのエラーを解決するにはどうすればよいですか?

6
Sam

12cドキュメントから

データポンプを使用してデータをCDBに移動する場合は、次の要件に注意してください。
...

  • デフォルトのデータポンプディレクトリオブジェクトDATA_PUMP_DIRは、PDBでは機能しません。エクスポートまたはインポートするPDB内の明示的なディレクトリオブジェクトを定義する必要があります。

PDBで独自のディレクトリオブジェクトを定義する必要があります。これは、ユーザー(ここではシステム)が読み取り/書き込み特権を持っていることを意味します。

create directory my_data_pump_dir as 'C:\app\OracleHomeUser1\admin\orcl\dpdump';
grant read, write on directory my_data_pump_dir to system;

DATA_PUMP_DIRが指すのと同じオペレーティングシステムディレクトリにすることができます。別のディレクトリオブジェクトが必要です。しかし、私は以前の質問へのコメントから、あなたが好むと言った道を使いました。

次に、インポートは次のように変更されます。

... DIRECTORY=my_data_pump_dir DUMPFILE=mydb.dmp 
7
Alex Poole