博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
zzw原创_expdp及impdp中的exclude及include参数的那点事
阅读量:5070 次
发布时间:2019-06-12

本文共 3353 字,大约阅读时间需要 11 分钟。

zzw原创:转载请注明出处

在oracle的expdp 及imdpd命令中,exclude及include参数还是有一些要注意的地方,特别是涉及选择性条件时。

一、通用

1、exclude及include参数不能同时使用,这两个是相互排斥的。

2、在parfile参数文件中,可以同时用多个exclude参数,但只能用一个include参数

3、include、exclude参数是默认就是针对对象名称操作的:如表名、视图名、过程名、包名等,所以设计条件时,可以从查询语句select  distinct(object_type)  from  all_objects中先取得这些名称。

4、include、exclude参数中,在escape语句中,不能用\作为转义符

   (1)、include=table:"like 'SEC_%'" 

     结果:SECAAAROLE、SEC_ROLE、SEC_OPERATION三个表,说明,_依旧表示一个占位符的作用

   (2)、include=table:"like 'SEC\_%'"

       不能导出SECAAAROLE、SEC_ROLE、SEC_OPERATION三个表,说明在''中,\并不表示转义符

   (3)、include=table:"like 'SEC\_%'escape'\'"  这样会报错:

       ORA-39001: invalid argument value
       ORA-39071: Value for INCLUDE is badly formed.
       ORA-01425: escape character must be character string of length 1
    (4)、改成这样  include=table:"like 'SEC#_%'escape'#'"
         可以正确导出SEC_ROLE、SEC_OPERATION二个表,但不能导出SECAAAROLE这个表。结论:在include、exclude参数中,在escape语句中,不能用\作为转义符!!,可以选用选用其他特殊字符作为转义符。如果确实要用\,也要可以用ascii码代替:include=table:"like 'SEC\_%'escape chr(92)"

 

二、exclude参数用法

a、exclude参数在parfile文件中可以有多个,还有多种写法。

[oracle@test189 temp2]$ vi zzw-expscript_impclude.par

DIRECTORY=ZZW_EXPDPDIR
DUMPFILE=bdctemp1.dmp
exclude=table:"like 'BDC%'" , table:"like 'USPC%'",table:"like 'AUDIT%'"
exclude=table:"like 'SMS#_%'escape'#'"
exclude=table:"in (select table_name from user_tables  where regexp_like(table_name,'^MENU.*')
or regexp_like(table_name,'^SEC_.*_.*$'))"
LOGFILE=bdctemp1.log

b、支持换行,比如,上面的语句,在parfile文件中如下换行也是可以的

[oracle@test189 temp2]$ vi zzw-expscript_impclude.par

DIRECTORY=ZZW_EXPDPDIR
DUMPFILE=bdctemp1.dmp
EXCLUDE=STATISTICS
exclude=view,table:"like 'BDC%'" ,
table:"like 'USPC%'",
table:"like 'AUDIT%'"
exclude=table:"like 'SMS#_%'escape'#'"
exclude=table:"in (select table_name from user_tables  where regexp_like(table_name,'^MENU.*') 
or regexp_like(table_name,'^SEC_.*_.*$'))"
LOGFILE=bdctemp1.log

 

    ps:采用这种exclude=table:"in (select table_name from user_tables)"方法导出时,我环境中会出现 ORA-07445: exception encountered: core dump     [kokemisz()+34] [SIGSEGV] [ADDR:0x18] [PC:0x143F5B6] [Address not mapped to object] []  这样的错误,在parfile文件中加入 EXCLUDE=STATISTICS条件问题就解决了。

三、include参数用法

a、不允许的写法

    include=table:"='BOSS'" or table:"='SEC_ROLE'"

    include=table:"='BOSS'" , table:"='SEC_ROLE'"

b、允许的写法

     include=table:"='BOSS'"

    include=table:"in('BOSS','SEC_ROLE')"

    include=table:"in(select table_name from user_tables  where table_name in('BOSS','SEC_ROLE'))"

    include=table:"in(select table_name from user_tables  where regexp_like(table_name,'^BDC_.{4}_.*$'))"   #注意,_在like中表示占位符,在regexp_like不表示占位符。 

     include=table:"in(select table_name from user_tables  where regexp_like(table_name,'^BDC_.{8}_.*$') or regexp_like(table_name,'^ATTACHMENT_.{4}') or  table_name like 'QRTZ#_%'escape'#')"

c、网上有人提供的好方法()

   导出某些无规律的表,有很多,也许需要动态维护

    建立表exp_table
    create table exp_table (table_name varchar2(100);
    然后将需要导出的表名插入exp_table中。
    insert into exp_table values(‘A’);
    insert into exp_table values(‘B’);
    insert into exp_table values(‘PUB_GOODS’);
    insert into exp_table values(‘PUB_GOODS_UNIT’);

    最后导出的的时候:

    parfile
    userid=user/passwd
    directory=expdir
    dumpfile=testfile.dmp
    include=table:" in (select table_name from exp_table ) "
    这样就可以导出exp_table中所包含的所有表了。更神奇的是,可以在exp_table里面将自己也插入进去,然后把exp_table也导出哦

 

 d、这样的写法是错误的,因为包含两个include语句

    DIRECTORY=ZZW_EXPDPDIR

    DUMPFILE=bdctemp1.dmp
    include=table:"='BOSS'"
    include=table:"='SIMS'"

 

 

by zzw 2017.3.28

by zzw 2017.4.13修改 于aspire

 

转载于:https://www.cnblogs.com/zzw-zyba/p/6635088.html

你可能感兴趣的文章
3、CentOS 6.5系统安装配置Tomcat 8详细过程
查看>>
Spring Boot:Spring Boot 中 Redis 的使用
查看>>
%s %d %f 等等是什么意思
查看>>
无人值守安装linux系统
查看>>
F# 的血继限界(2)
查看>>
【传道】中国首部淘宝卖家演讲公开课:农业本该如此
查看>>
jQuery应用 代码片段
查看>>
MVC+Servlet+mysql+jsp读取数据库信息
查看>>
黑马程序员——2 注释
查看>>
用OGRE1.74搭建游戏框架(三)--加入人物控制和场景
查看>>
转化课-计算机基础及上网过程
查看>>
android dialog使用自定义布局 设置窗体大小位置
查看>>
ionic2+ 基础
查看>>
互联网模式下我们更加应该“专注”
查看>>
myeclipse集成jdk、tomcat8、maven、svn
查看>>
Navicat 提示Cannot create oci environment 解决方式
查看>>
查询消除重复行
查看>>
Sand Making Plant Produced by Red Star
查看>>
读《雷军给郁亮等传统大佬的一句血泪忠告》
查看>>
Win 10 文件浏览器无法打开
查看>>