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

阅读更多

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

private static String getString(String id, List 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;
}

你可能感兴趣的:(数据库,最大表达式数为1000解决方案)