处理 Oracle SQL in 超过1000 的解决方案
2012-08-31 14:58
375 查看
处理oracle sql 语句in子句中(where id in (1, 2, ..., 1000, 1001)),如果子句中超过1000项就会报错。
这主要是oracle考虑性能问题做的限制。如果要解决次问题,可以用 where id (1, 2, ..., 1000) or id (1001, ...)
这主要是oracle考虑性能问题做的限制。如果要解决次问题,可以用 where id (1, 2, ..., 1000) or id (1001, ...)
/** * <b>function:</b> 处理oracle sql 语句in子句中(where id in (1, 2, ..., 1000, 1001)), * 如果子句中超过1000项就会报错。 * 这主要是oracle考虑性能问题做的限制。 * 如果要解决次问题,可以用 where id (1, 2, ..., 1000) or id (1001, ...) * @author hoojo * @createDate 2012-8-31 下午02:36:03 * @param ids in语句中的集合对象 * @param count in语句中出现的条件个数 * @param field in语句对应的数据库查询字段 * @return 返回 field in (...) or field in (...) 字符串 */ private String getOracleSQLIn(List<?> ids, int count, String field) { count = Math.min(count, 1000); int len = ids.size(); int size = len % count; if (size == 0) { size = len / count; } else { size = (len / count) + 1; } StringBuilder builder = new StringBuilder(); for (int i = 0; i < size; i++) { int fromIndex = i * count; int toIndex = Math.min(fromIndex + count, len); //System.out.println(ids.subList(fromIndex, toIndex)); String productId = StringUtils.defaultIfEmpty(StringUtils.join(ids.subList(fromIndex, toIndex), "','"), ""); if (i != 0) { builder.append(" or "); } builder.append(field).append(" in ('").append(productId).append("')"); } return StringUtils.defaultIfEmpty(builder.toString(), field + " in ('')"); }
相关文章推荐
- 处理 Oracle SQL in 超过1000 的解决方案
- 处理 Oracle SQL in 超过1000 的解决方案
- 处理 Oracle SQL in 超过1000 的解决方案
- JAVA 处理 Oracle SQL in 超过1000 的解决方案
- Oracle中IN参数个数超过1000的解决方案
- Oracle SQL in 超过1000 的解决方案
- oracle中in的个数超过1000的解决办法
- java.io.Read包无法引入,,, oracle + hibernate 在 update 超过1000的长度时报错
- oracle的函数wm_concat字符超过4000的处理办法
- 【oracle】Listener日志监控:tnslsnr日志大小超过4G如何处理;
- Oracle处理CLOB超过4000入库问题
- oracle数据库查询语句in后面的参数个数超过1000的处理方式
- oracle插入值太大,超过限制数的处理ORA-12899,ora-01489
- oracle 使用IN 不能超过1000问题的解决(oracle中列表中的最大表达式数为 1000)
- 关于oracle 锁机制锁问题的详细分析(处理锁定)以及死锁的解决方案
- 针对oracle中in操作超过1000个参数 会抛异常 处理实例
- 关于oracle in后的参数个数超过1000问题
- IN 子句元素个数超过1000处理
- java 将长度很长的字符串(巨大字符串超过4000字节)插入oracle的clob字段时会报错的解决方案
- 解决oracle in 超过1000 报错问题