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)
推荐使用第二种方式。
声明
1.本站遵循行业规范,任何转载的稿件都会明确标注作者和来源;2.本站的原创文章,请转载时务必注明文章作者和来源,不尊重原创的行为我们将追究责任;3.作者投稿可能会经我们编辑修改或补充。