SQLException: ORA-01795: maximum number of expressions in a list is 1000
大家在用IN条件语句的时候可能用忽略一种情况
比如说:
我们需要更新,把10个Merchant的Status变成'A'.
IN clause里面有10个List Items, Merchant_id分别1,2,3,4,5,6,7,8,9,10
从1到10,这个SQL Statement是没有问题 从1到1000也是没有问题
但是一但超过1000个的话, 以上的异常就是出来
最土最土的解决方法可能就是:
这效率却不是很高
比如说:
UPDATE MERCHANT_ID SET STATUS = 'A' WHERE MERCHANT_ID IN (1,2,3,4,5,6,7,8,9,10);
IN clause里面有10个List Items, Merchant_id分别1,2,3,4,5,6,7,8,9,10
从1到10,这个SQL Statement是没有问题 从1到1000也是没有问题
UPDATE MERCHANT_ID SET STATUS = 'A' WHERE MERCHANT_ID IN (1,2,3,4,5,6,7,8,9,10......999,1000,1001);
最土最土的解决方法可能就是:
UPDATE MERCHANT_ID SET STATUS = 'A' WHERE MERCHANT_ID IN (1,2,3,4,5,6,7,8,9,10......999,1000)
OR MERCHANT_ID IN (1001,1002,1003.....1999,2000)
OR MERCHANT_ID IN (2001,2002,2003.....2999,3000);
OR MERCHANT_ID IN (1001,1002,1003.....1999,2000)
OR MERCHANT_ID IN (2001,2002,2003.....2999,3000);