我在Oracle 10g数据库查询可以在WHERE IN的数组中放置多少物品?
SELECT [whatever] FROM [somewhere] WHERE [someValue] IN [value1, valeue2, ..., valueN]
什么是N的最大尺寸(从上面值N)?它可能高达10k或50k?
我在Oracle 10g数据库查询可以在WHERE IN的数组中放置多少物品?
SELECT [whatever] FROM [somewhere] WHERE [someValue] IN [value1, valeue2, ..., valueN]
什么是N的最大尺寸(从上面值N)?它可能高达10k或50k?
如果您使用的IN
condition,这似乎是虽然你错过了周围值的列表中的括号从你的问题的情况下“表达式列表”的版本,那么你被限制在expression list本身:
表达式的逗号分隔的列表可以包含不超过1000个 表达式。以逗号分隔的表达式集列表可以包含任意数量的集合,但每个集合可以包含不超过1000个表达式。
如果您使用的是子查询版本,那么除可能的系统资源之外,没有限制。
Oracle有1000个元素为IN子句的固定的限制如手册中记载:
http://docs.oracle.com/cd/E11882_01/server.112/e26088/conditions013.htm#i1050801
最多可以指定到在expression_list 1000个表达式。
Oracle可以根据需要使用TEMP空间(磁盘)(其大小取决于您的DBA如何设置您的环境) – tbone 2012-07-10 11:26:04
1,000。然而,更好的问题是,查询中“OR”条款的数量是多少,我建议这个数字远低于1,000。 – GarethD 2012-07-10 11:34:23