in后括号中的参数个数有限制,Oracle 9i 中个数不能超过256,Oracle 10g个数不能超过1000.
当in的个数大于1000时,解决办法有:
(1)对参数进行处理,分成多个in,其中每个in列表中参数都小于1000,如 params in(1,2,3.........1000) or params in(1001,1002...2000).
不过这种方法性能和维护性方面不好
(2)是将in后面的字符串改成了子查询,将in里面的数据保存到临时表中,params in(select ....from dual )