是否可以在 SQL IN 子句中放入超过 1000 个项目?我们的 Oracle 数据库一直无法处理这个问题。如果可以,我们如何在 SQL IN 子句中放入超过 1000 个项目?
可以在 SQL IN 子句中放入超过 1000 个项目吗?我们的 Oracle 数据库一直无法处理这个问题。
如果是,我们如何在 SQL IN 子句中放入超过 1000 个项目?
如果没有的话我还能做什么?
收藏品可以有超过 1000 个项目。
创建集合数据类型:
CREATE TYPE number_list IS TABLE OF NUMBER;
然后你可以使用 MEMBER OF
运算符:
SELECT *
FROM table_name
WHERE id MEMBER OF number_list(1,2,3,4 /*,...*/ ,7999,8000)
或者 IN
使用表集合表达式:
SELECT *
FROM table_name
WHERE id IN (
SELECT COLUMN_VALUE
FROM TABLE(number_list(1,2,3,4 /*,...*/ ,7999,8000))
)
或者,某些语言(例如 Java—— 示例 )可以使用绑定变量将数组作为 SQL 集合传递:
SELECT *
FROM table_name
WHERE id MEMBER OF :your_array