我有一个查询
SELECT [whatever] FROM [somewhere] WHERE [someValue] IN [value1, valeue2, ..., valueN]
Oracle 10g数据库中N的最大大小(来自上述值N)是多少?可能高达10k还是50k?
答案 0 :(得分:3)
对于IN子句,Oracle具有1000个元素的固定限制,如手册中所述:
http://docs.oracle.com/cd/E11882_01/server.112/e26088/conditions013.htm#i1050801
您最多可以在expression_list中指定1000个表达式。
答案 1 :(得分:3)
如果您正在使用IN
condition的'表达式列表'版本,虽然您错过了值列表周围的括号,但您的问题似乎就是这种情况,那么您受限于expression list本身:
以逗号分隔的表达式列表不能超过1000个 表达式。逗号分隔的表达式列表可以包含 任意数量的集合,但每组可以包含不超过1000 表达式。
如果您正在使用子查询版本,那么除了可能的系统资源之外没有任何限制。
答案 2 :(得分:2)
此thread表示限制为1000.但是,我建议您不要去那里,而是将您的值放在表格中,然后将查询转换为子选择。更整洁,更灵活,性能更好。
答案 3 :(得分:-1)
这取决于您对该特定列的行数。在某些情况下,表中可能有数百万条记录。