(FAQ)SQL语句select的字段数超出Oracle软件限制的最大数问题

栏目:eas cloud知识作者:金蝶来源:金蝶云社区发布:2024-09-16浏览:1

(FAQ)SQL语句select的字段数超出Oracle软件限制的最大数问题

(FAQ)SQL语句select的字段数超出Oracle软件限制的最大数问题
原因分析: 1. 通过应用服务器apusic日志或oracle警告文件找到以上报错处,可以找到对应的sql语句。该sql语句选择的字段数上百个,超出了相应的oracle版本数据库的最大字段数,故执行报错。最大的字段数限制目前暂没有参数进行调整。 2.Oracle也是为了限制大量数据的选择,防止数据库宕机。从而oracle内部程序对选择的字段最大数进行了限制。 解决方法: 1. 如果Oracle数据库当前的版本是10.2.0.1,可以通过升级数据库版本到10.2.0.4,以增大Oracle选择字段的总数。(可以在oracle 10.2.0.4版库中进行测试,如果在10.2.0.4中运行也会报错,则说明选择的字段数限制已超出了10.2.0.4版库最大限制数,则需要按以下第二点的方法来解决) 2. 对相应的sql语句减少一些不必要的选择字段,通过改程序以私包的方式解决。在修改程序时可以参照以下的方式: 生成的抽象类里头默认查询出来的都是*.*,需要让二次开发手工修改更新抽像类,同时减少一些不必要的字段不要add。如: 字段瘦身方法: 原抽象方法getBOTPSelectors如下所示: public SelectorItemCollection getBOTPSelectors() { SelectorItemCollection sic = new SelectorItemCollection(); sic.add(new SelectorItemInfo(""*"")); sic.add(new SelectorItemInfo(""creator.*"")); ... sic.add(new SelectorItemInfo(""xgzdyhsxm.*"")); sic.add(new SelectorItemInfo(""XGDSFGYS.*""));} 手工在抽象方法修改getBOTPSelectors如下: public SelectorItemCollection getBOTPSelectors() { SelectorItemCollection sic = new SelectorItemCollection(); sic.add(new SelectorItemInfo(""*"")); sic.add(new SelectorItemInfo(""creator.*"")); ... sic.add(new SelectorItemInfo(""xgzdyhsxm.id"")); sic.add(new SelectorItemInfo(""xgzdyhsxm.number"")); sic.add(new SelectorItemInfo(""xgzdyhsxm.name"")); sic.add(new SelectorItemInfo(""XGDSFGYS.id""));} sic.add(new SelectorItemInfo(""XGDSFGYS.number""));} sic.add(new SelectorItemInfo(""XGDSFGYS.name""));}

(FAQ)SQL语句select的字段数超出Oracle软件限制的最大数问题

(FAQ)SQL语句select的字段数超出Oracle软件限制的最大数问题原因分析:1. 通过应用服务器apusic日志或oracle警告文件找到以上报错处,可以...
点击下载文档
确认删除?
回到顶部
客服QQ
  • 客服QQ点击这里给我发消息