zoukankan      html  css  js  c++  java
  • ORA-01795: 列表中的最大表达式数为1000的解决方法

    IN中的数据量不能超过1000条。

    解决方案:把条件分成多个少于1000的IN即:

    DELETE
    FROM
    T_MM_SECTION_SITE_UPDATE
    WHERE T.T_MM_SECTION_SL_ID IN ('1', '2', '3',...,'1000') OR IN ('1001', '1002', ..., '2000') OR ...

    String str = this.GetWhereInValuesSql("T_MM_SECTION_SL_ID",Idlist,800);

    /**
         * 获取where in语句
         *
         * @param column      字段名
         * @param values      值集合
         * @param num         数量
         * @return where in语句
         */
        @SuppressWarnings("unused") 
        String GetWhereInValuesSql(String column, List<String> values,int num) {
            // sql语句
            String sql = "(";
            // 值的个数
            int valueSize = values.size();
            // 批次数
            int batchSize = valueSize / num + (valueSize % num == 0 ? 0 : 1);
            for (int i = 0; i < batchSize; i++) {
                if (i > 0) {
                    sql += ") or ";
                }
                sql += column+" in (";
                for (int j = i * num; ( j < (i + 1) * num) && j < valueSize; j++) {
                    if (j > i * num) {
                        sql += ",";
                    }
                    sql += "'" + values.get(j) + "'";
                }
            }
            sql += "))";
            return sql;
        }

    mmSectionOrderQueryDao.deleteBatchQuery(str);

    //批量删除(查询表)
    void deleteBatchQuery(@Param("str")String str);

    <!--批量删除查询表-->
    <delete id="deleteBatchQuery" parameterType="java.lang.String">
    DELETE
    FROM
    T_MM_SECTION_SITE_UPDATE
    WHERE
    1=1
    <if test="str != null">
    AND ${str}
    </if>
    </delete>

  • 相关阅读:
    js截取字符串区分汉字字母代码
    List 去处自定义重复对象方法
    63. Unique Paths II
    62. Unique Paths
    388. Longest Absolute File Path
    41. First Missing Positive
    140. Word Break II
    139. Word Break
    239. Sliding Window Maximum
    5. Longest Palindromic Substring
  • 原文地址:https://www.cnblogs.com/acme6/p/9139907.html
Copyright © 2011-2022 走看看