【问题标题】:Why do I get ORA-39001: invalid argument value when I try to impdp in Oracle 12c?为什么我在 Oracle 12c 中尝试 impdp 时得到 ORA-39001: invalid argument value?
【发布时间】:2016-08-31 09:23:37
【问题描述】:

当我在 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。

如何解决这些错误?

【问题讨论】:

    标签: oracle import oracle12c datapump


    【解决方案1】:

    From the 12c documentation:

    在使用数据泵将数据移动到 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 指向的同一个操作系统目录,你只需要一个单独的目录对象。但我使用了你说你喜欢的路径,来自对上一个问题的评论。

    然后将import修改为有:

    ... DIRECTORY=my_data_pump_dir DUMPFILE=mydb.dmp 
    

    【讨论】:

    • 谢谢!有效。你真的是一个救生员。很高兴终于看到 impdp 在屏幕上进行熟悉的处理。
    • 请原谅无能的后续问题,但我怎么知道我是在处理CDB 还是非 CDB?例如,您似乎可以在这里看出 OP 正在使用 CDB。
    • @osullic - 部分来自错误,因为它是默认目录名称;但主要是因为 TNS 别名 pdborcl 暗示它是一个 PDB *8-) 更一般地说......嗯,取决于你在哪里寻找。 This might be helpful?
    猜你喜欢
    • 2018-10-25
    • 2021-07-27
    • 1970-01-01
    • 2019-07-09
    • 1970-01-01
    • 2022-11-04
    • 1970-01-01
    • 1970-01-01
    • 2010-12-06
    相关资源
    最近更新 更多