oracle in 条件超长问题解决

Posted Fight With Me!!!

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了oracle in 条件超长问题解决相关的知识,希望对你有一定的参考价值。

今天做了个es查询地址条件的需求,在回传给使用应用的过程当中,使用的应用出现了错误:in的条件中多于1000个表达式数会报ORA-01795的提示错误。接下来将in中的条件拆分,超过1000的用Or连接,发现in的效率非常低下。后来搜索到如下的回答之后,修改之后解决:

 

优化的方法就是id字段加索引,几百万还不算多,加个索引,就可以很快了。

但是不能使用in,因为in是不走索引的。可以将in改为or,select * from A where id=\'1\' or id=\'2\' or id=\'3\'.....

前提是你只用id查询哦,如果有其他条件就将所有条件都加到索引中。

  

 

以上是关于oracle in 条件超长问题解决的主要内容,如果未能解决你的问题,请参考以下文章

Oracle执行超长SQL的存储过程问题

oracle12c安装 遇到的INS-13001,INS-08109解决办法(无图)

关于oracle in 的1000条限制

如何调整oracle中的sql语句输入的最大长度

oracle 超长字符串连接问题

Oracle left outer join with is null in JOIN vs WHERE 条件(示例)