如何仅使用命令行从oracle数据库导出选定的函数,选定的过程,选定的视图和选定的表?

时间:2018-11-09 07:19:29

标签: oracle export impdp expdp

假设我要导出

  • 名为V1,V2的视图
  • 名为f1,f2的函数
  • 名为p1,p2的过程
  • 名为T1,T2的表

  • 用户名:系统

  • 密码:管理员sid /
  • 模式:DB3

所以我在CMD上执行以下命令

(1)expdp system / manager @ DB3目录= backupdir dumpfile = backup.dmp日志文件= backup.log include = view:“ IN('V1','V2')”,函数:“ IN('f1' ,'f2')“,过程:” IN('p1','p2')“,表:” IN('T1','T2')“

(2)expdp system / manager @ DB3目录= backupdir dumpfile = backup.dmp日志文件= backup.log include = view:“ IN('V1','V2')” include = function:“ IN('f1 ','f2')“ include =过程:” IN('p1','p2')“ include = table:” IN('T1','T2')“

这两个命令都不起作用:

  

错误:ORA-39071:INCLUDE的值格式错误。


以下命令有效,但仅导出指定的表。它不会导出视图,过程和功能。

(3)expdp system / manager @ DB3目录= backupdir dumpfile = backup.dmp logfile = backup.log include = view,procedure,function,table:“ IN('T1','T2')”

该怎么办?

1 个答案:

答案 0 :(得分:2)

  

ORA-39071:INCLUDE的值格式错误

命令行不喜欢引号。有两种处理方法。

第一个是转义引号:

expdp system/manager@DB3 directory=backupdir dumpfile=backup.dmp logfile=backup.log 
include=view:\"IN (\'V1\',\'V2\')\" include=function:\"IN (\'f1\',\'f2\')\" include=procedure:\"IN (\'p1\',\'p2\')\" include=table:\"IN (\'T1\',\'T2\')\"

如果那看上去很乏味(确实如此),第二个选择是定义一个参数文件。您可以在其中包含所有选项,而不必使用引号,而只需使用PARFILE参数运行expdp


  

我要导入从名为DB3的架构中导出的表,视图,函数和过程的架构“ DBpractice”中没有任何更改。

这确实是一个新问题,但是解决方案足够简单:您需要使用带有impdp的REMAP_SCHEMA参数运行source_schema:target_schema。所以你的情况就是

impdp system/manager directory=backupdir dumpfile=backup.dmp remap_schema=db3:DBpractice