首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > 开发语言 > 编程 >

Oracle in 超过1000怎么处理

2013-10-11 
Oracle in 超过1000怎么办也是用到了才知道,oracle in表达式参数支持最大上限1000个,是个头疼的问题,解决

Oracle in 超过1000怎么办

也是用到了才知道,oracle in表达式参数支持最大上限1000个,是个头疼的问题,

解决思路:拆分成多个in表达式,每个表达式中参数不超过1000,网上有很多解决的实现方法可以参考,有些看不大懂,就自己写了一个,分享下:

?

private String getSubQuery(String riskIds){StringBuffer subQ = new StringBuffer();subQ.append("(");if(!"".equals(riskIds) && null != riskIds){String[] riskIDs = riskIds.split(", ");if(riskIDs.length>1000){for(int i=0;i<riskIDs.length;i++){if((i+1)%1000 == 0){String temp = subQ.substring(0, subQ.length()-1);subQ.delete(0, subQ.length());subQ.append(temp);subQ.append(") or cc.cntlKORInfo.korEntityId in (");subQ.append(riskIDs[i]+",");}else{subQ.append(riskIDs[i]+",");}}String temp = subQ.substring(0, subQ.length()-1);subQ.delete(0, subQ.length());subQ.append(temp);subQ.append(")");}else{subQ.append(riskIds);subQ.append(")");}}else{subQ.append(")");}return subQ.toString();}

?

传入参数是一个"1,2,3,4"形式的string,分隔符",";

其他的实现方法可以参考下:

http://www.blogjava.net/hoojo/archive/2012/08/31/386692.html

http://www.cnblogs.com/ttc/archive/2008/07/21/1247790.htm

?

?

?

热点排行