UDE-00014: invalid value for parameter, 'query'.

有这样一个需求,在导出某张表中的数据时,需要排除掉指定ROWID的那条记录。

1、由于需要排除的ROWID比较多,所以写了个parfile文件,内容如下所示:

DIRECTORY=expdpdir

TABLES=(AZ02)

LOGFILE=expdp_az02.log

cluster=n

dumpfile=expdp_az02.dmp

EXCLUDE=STATISTICS

query=AZ02:"where rowid not in ('AAFu41AALAALqGgAAg', 'AAFu41AAPAAGUb0AAW', 'AAFu41AAPAAKCIHAAE', 'AAFu41AAAAAF8GNAAN', 'AAFu41AAAAAF9hIAAx', 'AAFu41AABAAIlxeAAb', 'AAFu41AABAAIlyZAAD

',

略……

'AAFu41AAeAAF

ZsjAAn', 'AAFu41AAeAAFZtKAAI', 'AAFu41AAeAAFZuTAAw', 'AAFu41AAeAAFZuYAAi', 'AAFu41AAeAAFZ6mAAH')"

在运行expdp时报错。UDE-00014: invalid value for parameter, 'query'. 很明显,是query参数值这块出了问题。

 

2、开始以为是query的语法有问题,查了下官方文档中语法, 发现官方手册上也是这么写的。觉得这个问题很奇怪,怀疑会不会因为源端是AIX平台,一些特殊字符需要转义呢?于是对parfile文件中query部分中的一些特殊字符进行了转义操作,但导出仍然报错。

 

3、没办法,只能查MOS了。结果就搜到"UDE-00014: Invalid Value For Parameter 'Query' Exporting A Table By Rowid (Doc ID 2263518.1)"。原来是因为query的参数值太长, 这让我想起了以前遇到过的一个问题,也是因为parfile文件中某个参数的值太长,提示无效的参数值。

 

4、修改query部分,让参数值不超过4000字节。终于可以成功导出。

Data Mining and Real Application Testing options

Starting "SYS"."SYS_EXPORT_TABLE_01": userid="/******** AS SYSDBA" parfile=expdp_qdsbk_az02.par

Estimate in progress using BLOCKS method...

Processing object type TABLE_EXPORT/TABLE/TABLE_DATA

Total estimation using BLOCKS method: 892.3 GB

Processing object type TABLE_EXPORT/TABLE/TABLE

Processing object type TABLE_EXPORT/TABLE/GRANT/OWNER_GRANT/OBJECT_GRANT

Processing object type TABLE_EXPORT/TABLE/INDEX/INDEX

Processing object type TABLE_EXPORT/TABLE/CONSTRAINT/CONSTRAINT

posted @   石云华  阅读(90)  评论(0编辑  收藏  举报
编辑推荐:
· Linux系列:如何用heaptrack跟踪.NET程序的非托管内存泄露
· 开发者必知的日志记录最佳实践
· SQL Server 2025 AI相关能力初探
· Linux系列:如何用 C#调用 C方法造成内存泄露
· AI与.NET技术实操系列(二):开始使用ML.NET
阅读排行:
· 【自荐】一款简洁、开源的在线白板工具 Drawnix
· 没有Manus邀请码?试试免邀请码的MGX或者开源的OpenManus吧
· 无需6万激活码!GitHub神秘组织3小时极速复刻Manus,手把手教你使用OpenManus搭建本
· C#/.NET/.NET Core优秀项目和框架2025年2月简报
· DeepSeek在M芯片Mac上本地化部署
点击右上角即可分享
微信分享提示