【发布时间】:2013-03-30 08:36:34
【问题描述】:
我在 oracle 数据库上使用 sql developer。我的要求是使用我拥有的主键 ID 一次提取 8000 多行。 sql developer 不允许我一次获取超过 1000 个。我所能做的就是添加一个 OR 并最多提取 2000(1000+1000)。有没有更好的方法一次拉所有?
如果需要使用临时表,在oracle中如何处理?
Select * from X where ID in (1,2,...1000) OR ID IN (1001,1002,...2000);
谢谢
【问题讨论】:
-
一定要使用
IN吗?为什么不BETWEEN 0 AND 8000 -
ID 来自哪里 - 另一个表?传递给脚本或过程? 8000 是很多需要手动管理和维护的值。如果它们是连续的,那么您可以使用
between但不清楚您提供的值是否只是示例? -
我还记得我们之前使用了 IN 关键字,但你应该注意它,因为它有最大数量的争论
-
Tikkes,我不能使用 BETWEEN,因为我的主键 ID 不是一个范围。它们不遵循系列模式。
-
"sql developer 不允许我一次获取超过 1000 个。"不。 Sql 开发人员允许您获取尽可能多的行,只要您有内存。您可以获取数百万行。
标签: sql oracle oracle-sqldeveloper