ICode9

精准搜索请尝试: 精确搜索
首页 > 其他分享> 文章详细

expdp报错,UDE-00014: invalid value for parameter, 'exclude'.

2020-08-23 13:35:16  阅读:426  来源: 互联网

标签:STAT expdp DTL PAY CA value 报错 DAILY 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')"

......

 

标签:STAT,expdp,DTL,PAY,CA,value,报错,DAILY,exclude
来源: https://www.cnblogs.com/missyou-shiyh/p/13548936.html

本站声明: 1. iCode9 技术分享网(下文简称本站)提供的所有内容,仅供技术学习、探讨和分享;
2. 关于本站的所有留言、评论、转载及引用,纯属内容发起人的个人观点,与本站观点和立场无关;
3. 关于本站的所有言论和文字,纯属内容发起人的个人观点,与本站观点和立场无关;
4. 本站文章均是网友提供,不完全保证技术分享内容的完整性、准确性、时效性、风险性和版权归属;如您发现该文章侵犯了您的权益,可联系我们第一时间进行删除;
5. 本站为非盈利性的个人网站,所有内容不会用来进行牟利,也不会利用任何形式的广告来间接获益,纯粹是为了广大技术爱好者提供技术内容和技术思想的分享性交流网站。

专注分享技术,共同学习,共同进步。侵权联系[81616952@qq.com]

Copyright (C)ICode9.com, All Rights Reserved.

ICode9版权所有