Oracle 在选择中使用限制选项。。。大量收集到

Oracle 在选择中使用限制选项。。。大量收集到,oracle,plsql,bulk-collect,Oracle,Plsql,Bulk Collect,从这个问题()的答案开始,我想知道是否可以在SELECT中使用LIMIT选项。。。大量收集到 我知道可以使用显式游标,但我想知道是否可以使用直接select语句 谢谢你,: 返回大量行的SELECT BULK COLLECT INTO语句将生成一个大型集合。要限制行数和集合大小,请使用以下选项之一: ROWNUMpseudocolumn(在Oracle数据库SQL语言参考中描述) SAMPLE子句(在Oracle数据库SQL语言参考中描述) fetchfirst子句(在Oracle数据库S

从这个问题()的答案开始,我想知道是否可以在SELECT中使用LIMIT选项。。。大量收集到

我知道可以使用显式游标,但我想知道是否可以使用直接select语句

谢谢你,

返回大量行的
SELECT BULK COLLECT INTO
语句将生成一个大型集合。要限制行数和集合大小,请使用以下选项之一:

  • ROWNUM
    pseudocolumn(在Oracle数据库SQL语言参考中描述)

  • SAMPLE
    子句(在Oracle数据库SQL语言参考中描述)

  • fetchfirst
    子句(在Oracle数据库SQL语言参考中描述)

因此,根据您链接到的上一个问题中的示例,您可以:

SELECT id BULK COLLECT INTO result_bulk FROM table1 WHERE rownum <= 1000;
可能有一个orderby(在第一个版本的子查询中)使其具有确定性

带有
limit
子句的显式
fetch
版本的优点是,您可以在循环中执行此操作,并继续获取接下来的1000行(或任意多行),直到看到所有行为止。使用
选择
版本,您只能获得一次机会;除非您将其放入一个循环并处理分页,即使这样,由于每个
选择都是独立的,数据也可能在查询之间更改(除非您也更改隔离级别)。

:

返回大量行的
SELECT BULK COLLECT INTO
语句将生成一个大型集合。要限制行数和集合大小,请使用以下选项之一:

  • ROWNUM
    pseudocolumn(在Oracle数据库SQL语言参考中描述)

  • SAMPLE
    子句(在Oracle数据库SQL语言参考中描述)

  • fetchfirst
    子句(在Oracle数据库SQL语言参考中描述)

因此,根据您链接到的上一个问题中的示例,您可以:

SELECT id BULK COLLECT INTO result_bulk FROM table1 WHERE rownum <= 1000;
可能有一个orderby(在第一个版本的子查询中)使其具有确定性


带有
limit
子句的显式
fetch
版本的优点是,您可以在循环中执行此操作,并继续获取接下来的1000行(或任意多行),直到看到所有行为止。使用
选择
版本,您只能获得一次机会;除非您将其放入一个循环并处理分页,即使这样,由于每个
select
都是独立的,数据也可能在查询之间更改(除非您还更改了隔离级别)。

将批量收集指定为。。。LIMIT子句是使用显式游标的少数几个好理由之一。。。LIMIT子句是使用显式游标的少数几个好理由之一。