ORA-01795 解决办法

Posted wwjj4811

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了ORA-01795 解决办法相关的知识,希望对你有一定的参考价值。

今天在工作中使用mybatis plus的selectBatchIds(List<Integer> ids)方法时,oracle报了ORA-01795的错。

则是因为oracle中使用 in 有限制,后面集合数目不能大于1000个,否则就会报错。

所以可以使用这种形式来规避。

select   ...  from ...  where id  in (1,2...1000) or in (1001,1002...2000) or (2001....

所以当id集合大于1000时候,就不能用Mybatis plus了,要在xml中手写查询方法。

技术图片

 

经测试,最后的运行结果应该是这样:

select   ...  from ...  where id  in (1,2...998,null) or in (999...1997,null) or (1998....

 

以上是关于ORA-01795 解决办法的主要内容,如果未能解决你的问题,请参考以下文章

ORA-01795 是不是有解决方法:列表中的最大表达式数为 1000 错误?

IN 查询时出现ORA-01795:列表中的最大表达式数为1000解决方法

ORA-01795: 列表中的最大表达式数为 1000

ORA-01795: 列表中的最大表达式数为 1000

ora 01795 in 1000 limit

如果查询列数超过1000行,oracle就报错,这是啥原因