ITPub博客

首页 > 数据库 > Oracle > oracle排除表导入导出

oracle排除表导入导出

原创 Oracle 作者:chenfengwww 时间:2009-07-24 16:37:18 0 删除 编辑

imp 导入数据时可否排除其中一张表不导入
在IMP进行数据导入时,能不能把不想导的一张或几张表不进行导入

Oracle9i及以前的imp,exp工具只能选择表导入导出,不能排除表,在Oracle10g中的expdp和impdp增加了exclude参数,允许排除某些不导入的表,对象类型等

在exp的版本中有两种方法排除表的导入和导出

方法一:
加tables=(table1,table2,...,tablen)参数可导入指定表
应该只能指定表,不能排除表

方法二:
在要导入的用户下把你不需要的表建起来,只要是同名
导入时,加上ignore=n参数,这个表报错,就不会导入此表了

在expdp版本中

可以使用子句INCLUDE=TABLE:"LIKE 'TAB%'"来仅导出那些名称以 TAB 开头的表。类似地,您可以使用结构INCLUDE=TABLE:"NOT LIKE 'TAB%'"来排除所有名称以 TAB 开头的表。作为另一种选择,您可以使用EXCLUDE参数来排除特定的对象。

虽然expdp -help指明了exclude的语法:exclude=table:emp

但实际上会出错。

正确的语法是exclude=table:"in ('EMP')"

例子:


C:>expdp oracle/oracle directory=testexpdp dumpfile=zzw_temp3.dmp exclude=TABLE
:"IN('TEST2')"
这是可以的

C:>expdp oracle/oracle directory=testexpdp dumpfile=zzw_temp3.dmp exclude=TABLE
:"IN ('TEST2','ZZW_TEMP2')"
但这是不行的,当排除多个表的时候不行,报ORA-39071: EXCLUDE 值的格式错误

需要增加转义字符,应该这样
C:>expdp oracle/oracle directory=testexpdp dumpfile=zzw_temp3.dmp exclude=TAB
LE:"IN ('TEST2','ZZW_TEMP2')"

归纳总结:
1.表名要大写
2.排除多表的时候要注意使用转义字符
3.排除表的时候,使用了exclude参数,就不要再使用schemas参数,如果有了schemas参数将对应的用户方案的全部对象导出

[@more@]

来自 “ ITPUB博客 ” ,链接:https://blog.itpub.net/22036495/viewspace-1024574/ ,如需转载,请注明出处,否则将追究法律责任。

上一篇: proftpd详细配置
请登录后发表评论 登录
全部评论

注册时间:2009-07-04

  • 博文量
    118
  • 访问量
    460764