ドキュメントから:
ORA-39088: ファイル名にパス指定を含めることはできません
原因:ダンプ・ファイル、ログ・ファイルまたはSQLファイルの名前にパス指定が含まれています。
処置:ディレクトリ・オブジェクトの名前を使用して、ファイルを格納する場所を示してください。
これは、あなたが示したパラメータDUMPFILE=db.dmp
が実際には のようなものであることを示唆していますがDUMPFILE=C:\some\dir\path\db.dmp
、これは許可されていません。データベースによって認識されるディレクトリを使用し、それをDIRECTORY
パラメータで指定する必要があります。
そのディレクトリパラメーターリンクから@ruffinが指摘しているように、ダンプファイルをデフォルトのDATA_PUMP_DIR
ディレクトリに配置できます。これは、ビューから見つけることができます。dba_directories
そのオブジェクトを使用する権限がある場合は、ビューから見つけることができますall_directories
。インポートするユーザーには、それを使用できるようにするための読み取りおよび書き込み権限が付与されている必要があります。また、ダンプ ファイルをオペレーティング システム ディレクトリに移動できるようにする必要があるため、そこでもアクセス許可が問題になる可能性があります。
データベース権限とオペレーティング システムへのアクセス権を持つ適切なディレクトリ オブジェクトがない場合は、作成して適切な権限を付与する必要があります。これは、通常は次のように、適切な権限を持つ人が行う必要がありますSYS
。
create directory my_data_pump_dir as 'C:\some\dir\path';
grant read, write on directory my_data_pump_dir to <username>;
次に、インポートが次のように変更されます。
... DUMPFILE=db.dmp DIRECTORY=my_data_pump_dir
pmon
オペレーティング システムのディレクトリは、データベース サーバー上の Oracle ユーザー アカウント (データベース プロセスを実行しているユーザーなど) が利用できる必要があることに注意してください。ローカル ディレクトリが何らかの方法でリモート サーバーにマウントされていない限り、ローカル ファイルを使用してリモート データベースにインポートすることはできません。古いimp
コマンドは、サーバー上で頻繁に実行されるクライアント側のアプリケーションでしたが、実行する必要はありませんでした。impdp
サーバー側のアプリケーションです。