当我尝试在Oracle 12c中显示时,为什么会得到ORA-39001:无效的参数值?

Sam*_*Sam 4 oracle import datapump oracle12c

当我在Oracle 12c SE2中运行此命令时:

impdp system/Oracle_1@pdborcl directory=DATA_PUMP_DIR dumpfile=mydb.dmp nologfile=Y
Run Code Online (Sandbox Code Playgroud)

我得到这个:

ORA-39001:无效的参数值

ORA-39000:错误的转储文件规范

ORA-39088:目录名称DATA_PUMP_DIR无效

我们过去一直将其导入11g。

我该如何解决这些错误?

Ale*_*ole 6

从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;
Run Code Online (Sandbox Code Playgroud)

它可以是DATA_PUMP_DIR指向的同一操作系统目录,您只需要一个单独的目录对象。但是,我从上一个问题的评论中使用了您说的更喜欢的方式。

然后将导入修改为:

... DIRECTORY=my_data_pump_dir DUMPFILE=mydb.dmp 
Run Code Online (Sandbox Code Playgroud)

  • 谢谢!有效。您确实是救生员。很高兴终于在impdp屏幕上看到了熟悉的处理过程。 (2认同)