in后括号中的参数个数有限制,Oracle 9i 中个数不能超过256,Oracle 10g个数不能超过1000.
重点:参数个数,不是总长度。
如下SQL子查询返回结果大于1000个,也没关系,因为放在in的括号里面的参数是个子查询相当于一个参数。
eg:
SELECT SRF.ROLE_ID FROM CL11.SYS_ROLE_DD SRF
WHERE SRF.ROLE_IDIN(SELECT SYS_ROLE_DD.ROLE_ID
FROM CL11.SYS_ROLE_DD ,CL11.SYS_FUNCTION
where SYS_ROLE_DD .FUNC_ID = SYS_FUNCTION.FUNC_ID)
如果in后面的括号里面放入的是 逗号分隔的大于1000个参数则报错。