ORA-01795:列表中的最大表达式数为1000解决方案


//id是列名,list是in的数据

private static String getString(String id, List<String> list) {
StringBuffer sb = new StringBuffer();
String returnString = "";
if (list.size() == 0 || null == list) {
returnString = sb.append(id).append("=''").toString();
}
for (int i = 0; i < list.size(); i++) {
if (i == 0) {
sb.append(id);
sb.append(" in (");
}
sb.append("'");
sb.append(list.get(i).toString());
sb.append("'");
if (i >= 900 && i < list.size() - 1) {
if (i % 900 == 0) {
sb.append(") or ");
sb.append(id);
sb.append(" in (");
} else {
sb.append(",");
}
} else {
if (i < list.size() - 1) {
sb.append(",");
}
}
if (i == list.size() - 1) {
sb.append(")");
}
}
returnString = sb.toString();
return returnString;
}

猜你喜欢

转载自zhaodefang2006.iteye.com/blog/2236913