1. 程式人生 > 其它 >UDE-00014: invalid value for parameter, 'query'.

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