相关疑难解决方法(0)

如何将超过1000个值放入Oracle IN子句中

有没有办法绕过静态IN子句中1000项的Oracle 10g限制?我有一个以逗号分隔的列表,其中列出了我想在IN子句中使用的许多ID,有时这个列表可能超过1000个项目,此时Oracle会抛出错误.查询与此类似...

select * from table1 where ID in (1,2,3,4,...,1001,1002,...)
Run Code Online (Sandbox Code Playgroud)

oracle in-clause

96
推荐指数
6
解决办法
27万
查看次数

myBATIS foreach 达到 1000 的限制

是 myBATIS 在他们自己的foreach.

<select id="selectPostIn" resultType="domain.blog.Post">
  SELECT *
  FROM POST P
  WHERE ID in
  <foreach item="item" index="index" collection="list"
      open="(" separator="," close=")">
        #{item}
  </foreach>
</select>
Run Code Online (Sandbox Code Playgroud)

但是,如果list包含超过 1000 个项目并且您使用的是 Oracle DB,则会出现以下异常:

java.sql.SQLSyntaxErrorException: ORA-01795: maximum number of expressions in a list is 1000
Run Code Online (Sandbox Code Playgroud)

我能做些什么来解决这个问题,使其适用于 1000 多个元素?

java oracle mybatis

2
推荐指数
1
解决办法
5317
查看次数

标签 统计

oracle ×2

in-clause ×1

java ×1

mybatis ×1