Oracle 在选择中使用限制选项。。。大量收集到
从这个问题()的答案开始,我想知道是否可以在SELECT中使用LIMIT选项。。。大量收集到 我知道可以使用显式游标,但我想知道是否可以使用直接select语句 谢谢你,: 返回大量行的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 BULK COLLECT INTO
语句将生成一个大型集合。要限制行数和集合大小,请使用以下选项之一:
pseudocolumn(在Oracle数据库SQL语言参考中描述)ROWNUM
子句(在Oracle数据库SQL语言参考中描述)SAMPLE
子句(在Oracle数据库SQL语言参考中描述)fetchfirst
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子句是使用显式游标的少数几个好理由之一。