版权声明:本文为博主原创文章未经博主允许不得转载。 /u/article/details/
最近遇到一个oracle错误之前并没有遇到过,并不是select in超过1000个导致的通过网上资料说是oracle版本导致,也有的说是oracle SQL过长導致
然后通过自己实践应该说是oracle SQL过长导致,看了一下SQL并不是很长主要还是select in,因为主键换成uuid之后来几百个uuid的数据,select in就导致SQL过长报错峩觉得网上所说的换oracle版本,也有可能是oracle版本对SQL过长支持不同不过我还是通过改写业务SQL解决问题的。项目中也不可能随便就换oracle版本
原来嘚代码,主要是select in 然后itemCode就是用;分隔的一大串的主键字符串然后又换成uuid的了,所以导致sql过长
解决方法:用分组遍历再拼装为一个List的方法这樣就可以避免select in,然后in里面又是一大堆uuid的数据然后就导致sql执行过长报错了
* ps:主键换成uuid之后,原来的方法会出现ORA-01460出错sql太长导致集合拆分工具类,工具类复制公司同事写的代码