expdp報錯,UDE-00014: invalid value for parameter, 'exclude'.


由於數據遷移需求,需要將某個用戶下除了指定的200張表之外的所有對象和數據全部導出。於是使用expdp工具,指定了exclude參數,排除指定的200張表。

expdp_ad.par文件中關於exclude的部分如下所示:
EXCLUDE=TABLE:"IN ('CA_STAT_DAILY_DTL_PAY_201610',
'CA_STAT_DAILY_DTL_PAY_201612',
'CA_STAT_DAILY_DTL_PAY_201701',
'CA_STAT_DAILY_DTL_PAY_201608',
'CA_STAT_DAILY_DTL_PAY_201609',
'CA_STAT_DAILY_DTL_PAY_201611',
......
)"

執行expdp導出時報錯,信息如下所示:

oracle ->@zwdb1:/backup/dmp$tail -f nohup.out
Export: Release 12.1.0.2.0 - Production on Wed Aug 19 16:24:37 2020

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

Connected to: Oracle Database 12c Enterprise Edition Release 12.1.0.2.0 - 64bit Production
With the Partitioning, Real Application Clusters, Automatic Storage Management, OLAP,
Advanced Analytics and Real Application Testing options
UDE-00014: invalid value for parameter, 'exclude'.

[1] + Done(1) nohup expdp userid=\'/ as sysdba\' parfile=expdp_ad.par &

可以看出,問題在於exclude參數指定的參數值無效。

開始懷疑是exclude參數中指定的表名不能獨占一行,需要添加換行符,於是修改expdp_ad.par文件,在exclude參數中指定的表名后都添加換行符。如下所示:

EXCLUDE=TABLE:"IN ('CA_STAT_DAILY_DTL_PAY_201610', \
'CA_STAT_DAILY_DTL_PAY_201612', \
'CA_STAT_DAILY_DTL_PAY_201701', \
'CA_STAT_DAILY_DTL_PAY_201608', \ 
'CA_STAT_DAILY_DTL_PAY_201609', \
'CA_STAT_DAILY_DTL_PAY_201611',  \
......
)"

結果仍然提示UDE-00014: invalid value for parameter, 'exclude'., 懷疑換行符不起作用,干脆直接把所有表名都放在一行中。 如下所示:

EXCLUDE=TABLE:"IN ('CA_STAT_DAILY_DTL_PAY_201610', 'CA_STAT_DAILY_DTL_PAY_201612', 'CA_STAT_DAILY_DTL_PAY_201701', 'CA_STAT_DAILY_DTL_PAY_201608', ......)"

 

但是,仍然提示UDE-00014: invalid value for parameter, 'exclude'.,於是再做了一次嘗試,將指定的表名只包括三張表,如下所示:

EXCLUDE=TABLE:"IN ('CA_STAT_DAILY_DTL_PAY_201610','CA_STAT_DAILY_DTL_PAY_201612','CA_NOTIFY_TASK_0930_2_202003')"

 

再次測試,可以成功導出數據。 通過這一系列的測試可以說明,EXCLUDE=TABLE:"IN ('參數中的值太多時,就會出現問題。根據這一現象,搜索到文章:UDE-00014 invalid value for parameter, 'tables'. (Doc ID 758848.1)。

這篇文章的大概意思是,當tables參數中的參數值太大,超過3400字節時,就可能會出現無效的參數值。

 

那么,當前遇到的這個問題,該如何處理呢? 最后想了一個土辦法,就是每一張表使用一個exclude=table:in的方式,如下所示:

EXCLUDE=TABLE:"IN ('CA_STAT_DAILY_DTL_PAY_201610')"
EXCLUDE=TABLE:"IN ('CA_STAT_DAILY_DTL_PAY_201612')"
EXCLUDE=TABLE:"IN ('CA_STAT_DAILY_DTL_PAY_201701')"
EXCLUDE=TABLE:"IN ('CA_STAT_DAILY_DTL_PAY_201608')"

......

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM