Oracle IMPDP的正确语法REMAP_DIRECTORY

时间:2019-02-22 22:02:23

标签: oracle impdp

我正在Windows 10平台上安装Oracle XE 18c。我正在按照https://docs.oracle.com/en/database/oracle/oracle-database/18/xeinw/exporting-and-importing-data-oracle-database-xe-11.2-and-18c.html#GUID-6C55327E-2701-426B-A55A-3A576DC78FCE中的说明进行操作,正在使用9.2节-为Oracle Application Express用户导出和导入数据。 我从原始系统中导出了数据,并成功完成了该操作。我将转储文件(DB11G.dmp)转移到了文件夹C:\ SS_BACKUPS中的新系统中。 在原始源系统上,文件位于:C:\ oraclexe \ app \ oracle \ oradata \ XE 在新的目标系统(不同的硬件)上,文件位于:C:\ app \ product \ 18.0.0 \ oradata \ XE 在新的目标系统上,我在SQLPLUS中执行了以下命令:

sqlplus SYS AS SYSDBA
SQL> CREATE DIRECTORY BACKUP_DIR AS 'C:\SS_BACKUPS';
SQL> GRANT READ, WRITE ON DIRECTORY BACKUP_DIR TO SYSTEM;
SQL> GRANT IMP_FULL_DATABASE to SYSTEM;

然后从特权DOS提示符下运行命令:

impdp system/(my_password)@localhost/xepdb1 full=Y REMAP_DIRECTORY='C:\oraclexe\app\oracle\oradata\XE\':'C:\app\product\18.0.0\oradata\XE\' directory=BACKUP_DIR dumpfile=DB11G.dmp logfile=impdpDB11G.log

执行该操作时,出现错误:UDI-00014: invalid value for parameter, 'remap_directory'

我将REMAP_DIRECTORY的结构理解为SOURCE:TARGET 知道为什么我会收到该错误吗? 感谢您的关注。

1 个答案:

答案 0 :(得分:1)

根据文档,您必须具有DATAPUMP_IMP_FULL_DATABASE角色才能使用REMAP_DIRECTORY选项。

更新1

根据此处的文档:

https://docs.oracle.com/en/database/oracle/oracle-database/18/sutil/datapump-import-utility.html#GUID-5DA84A72-B71C-4491-9DD8-7075D9A4B04F

  

取决于您的操作系统,可能需要转义符   如果为此指定一个值时使用引号   参数。 Oracle建议您将此参数放在一个   参数文件,可以减少转义符的数量   您否则将需要在命令行上输入。

因此,它表示尝试将REMAP_DIRECTORY选项放在参数文件中,以消除有关转义路径等的任何歧义。

我认为在您的情况下,可能是路径中的冒号可能需要从外壳中逃脱或隐藏。