今天看到群里有人问到关于在使用expdp导出数据中使用query参数报错的解决方法,自己也出于好奇心瞎折腾了一把,现记录如下

1.第一次尝试的时候[oracle@DB ~]$ expdp scott/scott tables=emp1 dumpfile=emp1.dmp logfile=emp1.log query=emp1:"where rownum

Export: Release 11.2.0.4.0 - Production on 星期日 6月 18 01:06:05 2017

Copyright (c) 1982, 2011, Oracle and/or its affiliates.  All rights reserved.

Connected to: Oracle Database 11g Enterprise Edition Release 11.2.0.4.0 - 64bit Production

With the Partitioning, OLAP, Data Mining and Real Application Testing options

ORA-39001: 参数值无效

ORA-39035: 已经指定了数据过滤器 SUBQUERY。

ORA-39001: 参数值无效

ORA-39035: 已经指定了数据过滤器 SUBQUERY。

上述错误说明query语法写的有问题

正确写法要用\转义引号

于是再次编写了一下,执行,OK![oracle@DB ~]$ expdp scott/scott tables=emp1 dumpfile=emp1.dmp logfile=emp1.log query=\"where rownum \

Export: Release 11.2.0.4.0 - Production on 星期日 6月 18 01:18:52 2017

Copyright (c) 1982, 2011, Oracle and/or its affiliates.  All rights reserved.

Connected to: Oracle Database 11g Enterprise Edition Release 11.2.0.4.0 - 64bit Production

With the Partitioning, OLAP, Data Mining and Real Application Testing options

启动 "SCOTT"."SYS_EXPORT_TABLE_01":  scott/******** tables=emp1 dumpfile=emp1.dmp logfile=emp1.log query="where rownum

正在使用 BLOCKS 方法进行估计...

处理对象类型 TABLE_EXPORT/TABLE/TABLE_DATA

使用 BLOCKS 方法的总估计: 64 KB

处理对象类型 TABLE_EXPORT/TABLE/TABLE

. . 导出了 "SCOTT"."EMP1"                              8.179 KB       4 行

已成功加载/卸载了主表 "SCOTT"."SYS_EXPORT_TABLE_01"

******************************************************************************

SCOTT.SYS_EXPORT_TABLE_01 的转储文件集为:

/u01/app/oracle/admin/orcl/dpdump/emp1.dmp

作业 "SCOTT"."SYS_EXPORT_TABLE_01" 已于 星期日 6月 18 01:19:03 2017 elapsed 0 00:00:10 成功完成

通过上面截图可以看到:1中双引号和小于号前面都要加上反斜线\转义,在实际oracle中会把这些反斜线去掉来执行,注意观察2处。

当然结果是OK的,把原表备份一下然后删除,导入验证一下,如下:

2.答主突发奇想又测试了一种情况,就是当query条件中有大于号的情况。如下:[oracle@DB ~]$ expdp scott/scott tables=emp1 dumpfile=emp1_2.dmp logfile=emp1.log query=\"where hiredate > to_date\(\'1982/01/02\',\'yyyy/mm/dd\'\)\"

-bash: to_date('1982/01/02','yyyy/mm/dd')": No such file or directory

看到结果没,如果条件中有大于号而又没有加反斜线,系统把这种大于号默认是重定义符号。如下所示这种:

更改一下,再次执行,就OK了。童鞋们请重点观察下图中标注的1、2处。[oracle@DB ~]$ expdp scott/scott tables=emp1 dumpfile=emp1_2.dmp logfile=emp1.log query=\"where hiredate \> to_date\(\'1982/01/02\',\'yyyy/mm/dd\'\)\"

Export: Release 11.2.0.4.0 - Production on 星期日 6月 18 01:59:56 2017

Copyright (c) 1982, 2011, Oracle and/or its affiliates.  All rights reserved.

Connected to: Oracle Database 11g Enterprise Edition Release 11.2.0.4.0 - 64bit Production

With the Partitioning, OLAP, Data Mining and Real Application Testing options

启动 "SCOTT"."SYS_EXPORT_TABLE_01":  scott/******** tables=emp1 dumpfile=emp1_2.dmp logfile=emp1.log query="where hiredate > to_date('1982/01/02','yyyy/mm/dd')"

正在使用 BLOCKS 方法进行估计...

处理对象类型 TABLE_EXPORT/TABLE/TABLE_DATA

使用 BLOCKS 方法的总估计: 64 KB

处理对象类型 TABLE_EXPORT/TABLE/TABLE

. . 导出了 "SCOTT"."EMP1"                              8.125 KB       3 行

已成功加载/卸载了主表 "SCOTT"."SYS_EXPORT_TABLE_01"

******************************************************************************

SCOTT.SYS_EXPORT_TABLE_01 的转储文件集为:

/u01/app/oracle/admin/orcl/dpdump/emp1_2.dmp

作业 "SCOTT"."SYS_EXPORT_TABLE_01" 已于 星期日 6月 18 02:00:01 2017 elapsed 0 00:00:04 成功完成

3.如果有童鞋想一下子导出多张表时,需如下定义:expdp scott/scott tables=emp1,emp2 dumpfile=emp.dmp logfile=emp1.log query=emp1:\"where rownum<5\",emp2:\"where rownum<5\"

oracle中$的用法,关于expdp 中query用法小结相关推荐

  1. vue template html属性,详解template标签用法(含vue中的用法总结)

    一.html5中的template标签 html中的template标签中的内容在页面中不会显示.但是在后台查看页面DOM结构存在template标签.这是因为template标签天生不可见,它设置了 ...

  2. oracle Expdp带条件,Oracle 11g expdp中query参数的使用

    Oracle 11g expdp中提供了query参数,可以在需要按条件导出表中部分数据时使用,它的使用就像是在select语句中的where条件使用一样. 数据库版本 linuxidc@ORCL&g ...

  3. exp/expdp中query参数的使用

    之前一直无法搞清楚exp/expdp中关于query参数的正确写法,每次都是零散的印象,这次特意把这个记录成日志以方便以后查看.关于query参数的写法请参看以下两个例子:    1.使用命令行:   ...

  4. java中foreach用法_java程序中foreach用法示例

    语法 for (Object objectname : preArrayList(一个Object对象的列表)) {} 示例 package com.kuaff.jdk5; import java.u ...

  5. 总结@ 在C# 中的用法

    总结@ 在C# 中的用法   一 字符串中的用法    1. 地球人都知道 C# 中 字符串常量可以以 @ 开头声名,这样的优点是转义序列"不"被处理,按"原样" ...

  6. java 如何取01 zz_java中synchronized用法(zz)

    java中synchronized用法(zz) java中synchronized用法(zz) 打个比方:一个object就像一个大房子,大门永远打开.房子里有 很多房间(也就是方法).这些房间有上锁 ...

  7. Python-Numpy中Array用法总结

    Numpy中array(数组) Numpy主要对象是齐次多维数组,由正整数元组索引,Numpy中维度称为轴(axis),数组的维数称为秩(rank). 可以参考:Numpy快速入门 1.1 创建数组 ...

  8. oracle 导出数据expdp的query参数用法

    今天收到了一个数据同步的需求,具体信息是将原oracle数据库的几张表的部分数据同步到另外一台oracle数据库.完成这个需求使用的是oracle的expdp导出工具.因为是导出表的部分数据,因此用到 ...

  9. Oracle数据泵备份与恢复 命令 expdp/impdp 用法详解

    Oracle数据泵备份与恢复 命令 expdp/impdp 用法详解 关于expdp和impdp     使用EXPDP和IMPDP时应该注意的事项: EXP和IMP是客户端工具程序,它们既可以在客户 ...

最新文章

  1. 07构建个人博客网站
  2. Java基础-流程控制
  3. 慕课网_《RabbitMQ消息中间件极速入门与实战》学习总结
  4. Java-Java I/O流解读之基于字符的I / O和字符流
  5. bzoj3786: 星系探索
  6. 邮箱伪造漏洞、钓鱼邮件漏洞(未添加SPF导致)
  7. 【数据库系统设计】数据库安全性
  8. python的列表操作_在Python中列表的操作
  9. 如何编程在一个文本文件中每隔n个字符插入一个换行符c语言实现,C语言程序设计A形成性作业及答案(31页)-原创力文档...
  10. jmeter校验结果_JMeter(1)--请求内容验证
  11. STL STL的不同实现版本
  12. 术业专攻丨认识系泊系统
  13. openwrt编译qca驱动不成功。gcc -isystem问题。
  14. 【开篇】初等数论及其核心内容
  15. Android 计时器Chronometer 使用及源码分析,常见移动app开发框架
  16. [049] 微信公众平台开发视频公开课第1讲-基础入门
  17. MFC中UpdateData(FALSE)与UpdateData(TRUE)的区别
  18. 三年开发的我,靠半年来刷的面试宝典,拿到了腾讯、阿里、字节offer!
  19. ASP.NET 用 FlexPaper 在页面上显示 PDF 文件
  20. 【视频教程】帝国CMS制作网站系列教程07

热门文章

  1. 湖北计算机技能高考专科学校排名,湖北2021年技能高考专科录取分数线
  2. c# datetime._C#| 带示例的DateTime.DayOfWeek属性
  3. date.gethour_Java LocalDateTime类| 带示例的getHour()方法
  4. Java LinkedList boolean addAll(int index,Collection c)方法,带有示例
  5. 第 1-3 课:深入理解字符串 + 面试题
  6. 面试干货 | Java 能否自定义一个类叫 java.lang.System?
  7. mysql中int、bigint、smallint 和 tinyint的区别与长度
  8. C语言,你真的弄懂了么?
  9. android新建工程横屏,华为MatePad Pro构建的安卓平板横屏生态有何不同?来看看
  10. 计算机巧用剪纸做画册教案,3 巧折巧剪教案公开课一等奖