expdp数据泵进行数据导出时,include参数值超长报错UDE-00014:invalid value for parameter, ‘include‘,导致无法导出问题解决

        近日有需求需要在数据库导出大量表数据,首先就想到expdp数据泵导出,导出的表则用include标签进行罗列。由于表比较多,一执行便直接报错:如

        近日有需求需要在数据库导出大量表数据,首先就想到expdp数据泵导出,导出的表则用include标签进行罗列。由于表比较多,一执行便直接报错:如下

     找了半天原因,原来include标签内的字符不能太长

     同时根据inlcue的特性找到一个解决方法:

     将需要导出的表插入到一个只有表名字段的数据对象中,例:

--创建数据对象
CREATE TABLE Tables_inclde (
tablesneme VARCHAR2(80)
);--数据插入
INSERT INTO Tables_inclde(tablesneme) values('XXX1');
INSERT INTO Tables_inclde(tablesneme) values('XXX2');
......
INSERT INTO Tables_inclde(tablesneme) values('XXX5000');

导出语句中的include标签则用:

expdp user/password schemas=data DIRECTORY=DMPS dumpfile=20230615.dmp logfile=20230615.log 
compression=all content=DATA_ONLY INCLUDE=TABLE:\"IN\(SELECT tablesneme FROM Tables_inclde\)\"