点击上方蓝字

关注徐sir,获取更多IT知识
作者 | 徐sir 11g ocm、Oracle ACE-A、PGCM
中国OCMU成员、中国ACDU成员、墨天轮2023年十大优秀作者、青学会联合创始人
如需转载请私信联系我,除了墨天轮、CSDN、PGFANS和微信公众号以外都不是我的号
如果觉得我写的对你有帮助,麻烦动动小手,点下:转发、关注、在看,帮我多增加点人气
个人水平有限,有意见或者发现文章有误请留言、私信我,喷子轻喷



正文开始
今天遇到一个客户找我处理一个小问题,主要是按条件导出数据表报错,这里记录一下如何处理的。
expdp 直接带查询条件语句可能出现的情况
直接在导出命令里写QUERY=<查询SQL>来按条件导出数据表可能会报这些错误
复制
--错误1
LRM-00101: unknown parameter name 'empno'
--错误2
ORA-39001: invalid argument value
ORA-39035: Data filter SUBQUERY has already been specified
--错误3
ORA-31693: Table data object "SCOTT"."DEPT" failed to load/unload and is being skipped due to error:
ORA-00933: SQL command not properly ended
--错误4
LRM-00111: no closing quote for value ''
EXP-19: failed to process parameters, type 'EXP HELP=Y' for help
EXP-0: Export terminated unsuccessfully
--错误5
ORA-31693: Table data object "SCOTT"."DEPT" failed to load/unload and is being skipped due to error:
ORA-06502: PL/SQL: numeric or value error
ORA-31605: the following was returned from LpxXSLSetTextVar in routine kuxslSetParam:
LPX-314: an internal failure occurred
--错误6
...
Processing object type TABLE_EXPORT/TABLE/TABLE
ORA-31693: Table data object "<SCHEMA_NAME>"."<TABLE_NAME>" failed to load/unload and is being skipped due
to error:
ORA-00911: invalid character
复制
复制
大部分的原因为是因为涉及到特殊字符需要转义,如果没有加转义符号\可能就会报错,但是万一是个复杂SQL还要到处去转义一下比较麻烦。
解决办法
把相关的参数写到配置文件里,expdp直接调用文件即可。
比如我要导出某张表里指定时间内的数据,并且每个文件30G大小,示例如下:
oracle用户在当前目录创建文件 query.par,内容如下:
DIRECTORY=DATA_PUMP_DIR
DUMPFILE=2024_%U
LOGFILE=2024.log
filesize=30000M
tables=TABLE_01
QUERY=TABLE_01:"where to_char(time,'YYYY-MM-DD hh:mi')>='2024-01-01 00:00'and to_char(time,'YYYY-MM-DD hh:mi')<='2024-12-31 23:59'"
复制
复制
执行,手动输入密码即可。
expdp parfile=query.par
复制
复制
结束
不是啥新知识点,不总干数据库的活,手生,现学现用,记录一下。
更多示例参考Export/Import DataPump Parameter QUERY - How to Specify a Query (Doc ID 277010.1)
往期文章回顾
数据库安装搭建
实战:如何在LINUX8.0上安装Oracle 11.2.0.4(文内有快速配置安装脚本)
搭建记录:duplicate搭建oracle rac到单实例搭建物理DG_V7
如何正确在windows server core(无图形界面)安装Oracle 19c(ASM版本)
如何正确在windows server core(无图形界面)安装Oracle 19c
实战RAC迁移系列
实战RAC迁移项目第2篇:RAC-RAC主备切换/IP更换/DG恢复
假期加班实战:Solaris系统下Oracle 12.2 在线扩容ASM磁盘组操作记录
数据库优化实战系列
Oracle故障处理系列
如何正确的在AIX 7.x系统中开启LargePage for Oracle
记一次INS-06006典型问题|安装Oracle 19c rac遇到的ssh互信不通过
实战:记一次DG跨平台迁移win_to_linux遇到的问题12
处理11g grid集群安装10g database软件,无法DBCA创建集群实例问题
记一次ORA-07445[nttaddr2bnd()+2158]问题处理
windows下oracle12C创建第2个实例后,第1个实例无法启动??
EXPDP遇到ORA-39171 ORA-1691报错处理办法
小白常用-Windows下如何把Oracle从C盘整体迁移到D盘?
系统集成类案例
真实案例-esxi7.0u1以上版本vCLS 虚拟机无法打开电源
如何不停机完成Linux操作系统克隆,也适用于P2V&V2V
安装ESXI 7.0的系统盘小于120G,安装后无本地datastore存储的处理办法
Centos7等保加固配置登录失败处理导致root被锁定,如何解锁?
Oracle SPARC服务器系列
传统IT领域的强者-Oracle小型机-第1篇:服务器简单介绍

—————————————————————
墨天轮:https://www.modb.pro/u/3605