假设我想导出
- 名为V1、V2的视图
- 名为f1、f2的函数
- 命名为p1、p2的程序
-
名为T1、T2 的表格
-
用户名:系统
- 密码:manager sid/
- 架构:DB3
所以我在CMD上按如下方式发出命令,
(1( expdp系统/manager@DB3directory=backupdir-dumpfile=backup.dmp logfile=backup.log include=view:"IN('V1','V2'(",函数:"IN('1','f2'("、过程:"IN"('p1','p2'(",表:"IN('T1','T2'(">
(2( expdp系统/manager@DB3directory=backupdir-dumpfile=backup.dmp logfile=backup.log include=view:"IN('V1','V2'("include=function:"IN('1','f2'("include=procedure:"IN
这两个命令都不起作用:
错误:ORA-39071:INCLUDE的值格式错误。
以下命令有效,但仅导出指定的表。它不导出视图、过程和函数。
(3( expdp系统/manager@DB3directory=backupdir-dumpfile=backup.dmp logfile=backup.log include=视图、过程、函数、表:"IN('T1','T2'(">
该怎么办?
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
即可。
架构"DBpractice"中没有任何更改,我希望在其中导入从名为DB3的架构导出的表、视图、函数和过程。
这确实是一个新问题,但解决方案很简单:您需要使用REMAP_SCHEMA参数运行impdp
,该参数接受source_schema:target_schema
。所以在你的情况下,这将是
impdp system/manager directory=backupdir dumpfile=backup.dmp remap_schema=db3:DBpractice