我是靠谱客的博主 傻傻御姐,最近开发中收集的这篇文章主要介绍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:UsersAdministrator>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/

最后

以上就是傻傻御姐为你收集整理的ORACLE 使用expdp按条件导出clob数据的全部内容,希望文章能够帮你解决ORACLE 使用expdp按条件导出clob数据所遇到的程序开发问题。

如果觉得靠谱客网站的内容还不错,欢迎将靠谱客网站推荐给程序员好友。

本图文内容来源于网友提供,作为学习参考使用,或来自网络收集整理,版权属于原作者所有。
点赞(53)

评论列表共有 0 条评论

立即
投稿
返回
顶部