【发布时间】:2019-05-14 15:46:00
【问题描述】:
我正在尝试使用 limit 关键字对数据库查询设置限制。
这是我当前没有限制关键字的工作查询。
DECLARE
TYPE NESTED_TABLE_DECLARATION IS TABLE OF SCHEMA.TABLE_NAME%ROWTYPE;
NESTED_TABLE NESTED_TABLE_DECLARATION;
BEGIN
SELECT * BULK COLLECT INTO NESTED_TABLE FROM SCHEMA.TABLE_NAME;
END;
/
我想避免使用游标,但仍然使用如下限制关键字。
DECLARE
TYPE NESTED_TABLE_DECLARATION IS TABLE OF SCHEMA.TABLE_NAME%ROWTYPE;
NESTED_TABLE NESTED_TABLE_DECLARATION;
BEGIN
SELECT * BULK COLLECT LIMIT 100 INTO NESTED_TABLE FROM SCHEMA.TABLE_NAME;
END;
/
【问题讨论】:
-
您使用的是什么版本的 Oracle?
-
您是否打算从此查询中只获得 100 行?如果是这样,您是否关心获得了哪 100 行,或者您对任意 100 行是否满意?
-
你为什么不想定义一个游标?
-
@BobJarvis:12.1 @JustinCave:为了将来的性能调整,我希望能够快速更改这个数字。该表在某些设置中可能包含 10000 条记录,而在其他设置中则超过一百万。 @ APC:我可能需要使用 dblink,并且游标不能通过 dblinks 传递。
-
这种限制的原因是什么?
标签: oracle plsql nested-table bulk-collect rowtype