ORACLE 使用expdp按条件导出clob数据

现在有张表prt_template,表包含大字段,并且需要按指定条件导出。不能使用客户端直接导出,可以使用expdp按指定条件导出:

1)建立导出目录并授权:
SQL> create directory dir_dp as '/data/oracle'

SQL> grant read,write on directory dir_dp  to topicis;

2)建立导出参数文件: prt_temp.par
[oracle@hbdb oraclebackup]$ cat prt_temp.par
DUMPFILE=prt_template.dmp
DIRECTORY=dir_dp
TABLES=
(
PRT_TEMPLATE
)
QUERY=
(
PRT_TEMPLATE:"where id='40a581d1431efe890143227206920004'"
)

p.s. 也可直接使用命令导出,使用指定条件单条语句导出时,需要加一对单引号:
expdp topicis/topicis@topicis tables=topicis.PRT_TEMPLATE  dumpfile=prt_template.dmp directory=dir_dp QUERY= 'PRT_TEMPLATE:"where id=40a581d1431efe890143227206920004" '
在实际测试中发现:如果条件中不含有引号,可以直接执行;如果条件是字符类型或者日期类型需要引号,导出不成功,所以使用参数文件导出的方式。

3)执行导出命令,导出文件名为prt_template.dmp
[oracle@hbdb oraclebackup]$ expdp topicis/topicis@topicis  parfile=prt_temp.par


成功导出后进行导入:
1)建立导入目录并授权:
SQL> create directory dir_imp as 'D:\oracle'
SQL> grant read,write on directory dir_imp to topicis;

2)指定导入文件并进行导入:
C:\Users\Administrator>impdp topicis/topicis@tiod dumpfile=prt_template.dmp directory=dir_imp  TRANSFORM=segment_attributes:n

p.s. 此处使用了“ TRANSFORM=segment_attributes:n”,保证在导入时不提示建立表空间不存在的问题。TRANSFORM选项指定了是否修改导入文件中建立对象的DDL语句。
其格式为:TRANSFORM=transform_name:value
其中Transform_name用于指定转换名,使用SEGMENT_ATTRIBUTES用于标识段属性(物理属性,存储属性,表空间,日志等信息),STORAGE用于标识段存储属性,VALUE用于指定是否包含段属性或段存储属性。如果想要拿到导出文件dmp中需要建立对象的DDL语句(不包含表空间和存储内容),可以使用下面的命令:

impdp topicis/topicis@tiod directory=dir_imp dumpfile=prt_template.dmp sqlfile= prt_template.sql  TRANSFORM=segment_attributes:n

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

转载于:http://blog.itpub.net/26770925/viewspace-1314198/

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值