打开APP
userphoto
未登录

开通VIP,畅享免费电子书等14项超值服

开通VIP
Oracle in 超过1000怎么办

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

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

 

Java代码  
  1. private String getSubQuery(String riskIds){  
  2.         StringBuffer subQ = new StringBuffer();  
  3.         subQ.append("(");  
  4.         if(!"".equals(riskIds) && null != riskIds){  
  5.             String[] riskIDs = riskIds.split(", ");  
  6.             if(riskIDs.length>1000){  
  7.                 for(int i=0;i<riskIDs.length;i++){  
  8.                     if((i+1)%1000 == 0){  
  9.                         String temp = subQ.substring(0, subQ.length()-1);  
  10.                         subQ.delete(0, subQ.length());  
  11.                         subQ.append(temp);  
  12.                         subQ.append(") or cc.cntlKORInfo.korEntityId in (");  
  13.                         subQ.append(riskIDs[i]+",");  
  14.                     }else{  
  15.                         subQ.append(riskIDs[i]+",");  
  16.                     }  
  17.                 }  
  18.                 String temp = subQ.substring(0, subQ.length()-1);  
  19.                 subQ.delete(0, subQ.length());  
  20.                 subQ.append(temp);  
  21.                 subQ.append(")");  
  22.             }else{  
  23.                 subQ.append(riskIds);  
  24.                 subQ.append(")");  
  25.             }  
  26.         }else{  
  27.             subQ.append(")");  
  28.         }  
  29.           
  30.         return subQ.toString();  
  31.     }  

 

传入参数是一个"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

本站仅提供存储服务,所有内容均由用户发布,如发现有害或侵权内容,请点击举报
打开APP,阅读全文并永久保存 查看更多类似文章
猜你喜欢
类似文章
C#实现将浮点数表示的货币数量以汉字大写形式输出的方法
16进制字符串与byte数组互转
截取指定长度html内容,并保留html格式标记(c#版)-程序开发-红黑联盟
UC 优视科技字符串算法面试题
敏感信息脱敏实现
oracle11g函数
更多类似文章 >>
生活服务
热点新闻
分享 收藏 导长图 关注 下载文章
绑定账号成功
后续可登录账号畅享VIP特权!
如果VIP功能使用有故障,
可点击这里联系客服!

联系客服