oracle中in后只能有1000条以内,若多余1000条会出现ORA-01795问题,解决方案:
String[] ids = params.split(",");
StringBuffer allId = new StringBuffer("");
int inNum = 1; //已拼装IN条件数量
for(int i=0;i<ids.length;i++) {
if(inNum==1000 && i>0) {
allId.append("'" + ids[i] + "' ) OR PROJECT_ID IN ( "); //解决ORA-01795问题
inNum = 1;
}
else {
allId.append("'" + ids[i] + "',");
inNum++;
}
}
分别放到两个in中。