Oracle MyBatis 提示:java.sql.SQLSyntaxErrorException: ORA-01795: 列表中的最大表达式数为 1000

无情 阅读:793 2021-03-31 13:26:34 评论:0

产生原因:oracle 使用 in 关键字查询且集合数量大小大于1000

解决办法:

第一种、将集合拆分,使用or 连接。
select * from A where id in (1, 2, …, 1000) or id in (1001, …, 1999)
第二种、将集合修改为查询语句
select * from A where id in (select id from B)
第三种、与 第二种 类似,使用 with  as 语法,把条件封装成一个表
with temp as (select * from B)
select * from A where id in (select id from temp)

推荐使用第二种方式。

标签:Exception
声明

1.本站遵循行业规范,任何转载的稿件都会明确标注作者和来源;2.本站的原创文章,请转载时务必注明文章作者和来源,不尊重原创的行为我们将追究责任;3.作者投稿可能会经我们编辑修改或补充。

关注我们

一个IT知识分享的公众号