zoukankan      html  css  js  c++  java
  • Oracle SQL in 超过1000 的解决方案

    GPS平台、网站建设、软件开发、系统运维,找森大网络科技!
    https://cnsendnet.taobao.com
    来自森大科技官方博客
    http://www.cnsendblog.com/index.php/?p=1979

    处理oracle sql 语句in子句中(where id in (1, 2, ..., 1000, 1001)),如果子句中超过1000项就会报错。
    这主要是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 ('')");

    }


    版权所有,转载请注明出处 本文出自: 

    GPS平台、网站建设、软件开发、系统运维,找森大网络科技!
    https://cnsendnet.taobao.com
    来自森大科技官方博客
    http://www.cnsendblog.com/index.php/?p=1979

  • 相关阅读:
    C#操作EXcel
    ADO.NET 导出 Excel 文件
    基于jQuery的数字键盘插件
    Python爬虫(三)——正则表达式
    python爬虫(二)——第一个爬虫程序
    python爬虫学习(一)——爬虫的工作原理
    斜率优化DP学习笔记
    可持久化线段树学习笔记
    尺取法学习笔记
    分层图学习笔记
  • 原文地址:https://www.cnblogs.com/cnsend/p/15463496.html
Copyright © 2011-2022 走看看