概述
现在有张表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数据所遇到的程序开发问题。
如果觉得靠谱客网站的内容还不错,欢迎将靠谱客网站推荐给程序员好友。
本图文内容来源于网友提供,作为学习参考使用,或来自网络收集整理,版权属于原作者所有。
发表评论 取消回复