我在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