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

    今天查看日志的时候发现多次出现如下的异常,查阅了资料后发现IN语句中写的表达式的最大数量不能超过1000。

    解决方法: 1. 拆分IN里面的条件,将表达式的数量控制在1000以内,然后通过OR语句连接。

                    2.作为子查询。

    我使用了第二种方法:

    <if test="createBy != null and createBy.name != null and createBy.name != ''">
    	AND a.create_by in (select u.id as "createBy.id" FROM sys_user u where u.name LIKE 
    		<if test="dbName == 'oracle'">'%'||#{createBy.name}||'%'</if>
    		<if test="dbName == 'mssql'">'%'+#{createBy.name}+'%'</if>
    		<if test="dbName == 'mysql'">concat('%',#{createBy.name},'%')</if>
    	)
    </if>
    

      

    第一种方法有时间再试

  • 相关阅读:
    死锁
    不能复制文件到服务器
    JWT
    身份验证
    依赖注入
    ml.net
    swift 枚举、结构、类
    nginx 负载均衡
    sql 时间函数大全
    更新SVN时提示要清理,但清理失败,乱码得解决方案
  • 原文地址:https://www.cnblogs.com/person008/p/8954272.html
Copyright © 2011-2022 走看看