1

Suppose I want to export

  • Views named V1, V2
  • Functions named f1, f2
  • Procedures named p1, p2
  • Tables named T1, T2

  • username : system

  • password : manager sid /
  • schema : DB3

So I fire command on CMD as follow,

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

(2) 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')"

These both commands are not working:

Error : ORA-39071: Value for INCLUDE is badly formed.


Following command works but it exports specified Tables only. It doesn't export views, procedures and functions.

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

What to do?

4

1 回答 1

3

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\')\"

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


模式“DBpractice”中没有任何更改,我想在其中导入已从名为 DB3 的模式导出的表、视图、函数和过程。

这确实是一个新问题,但解决方案很简单:您需要impdp使用 REMAP_SCHEMA 参数运行,该参数需要source_schema:target_schema. 所以在你的情况下

impdp system/manager directory=backupdir dumpfile=backup.dmp remap_schema=db3:DBpractice
于 2018-11-09T08:23:12.283 回答