如何使用嵌套 Table PL/SQL 集合设置批量收集限制?
How to set a Limit on Bulk Collect with a Nested Table PL/SQL Collection?
我正在尝试使用 limit 关键字对数据库查询设置限制。
这是我当前的工作查询,没有 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;
/
我想避免使用游标,但仍然使用如下的 limit 关键字。
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;
/
不能在主查询中使用保留字 Limit,这只能使用游标进行批量收集以优化服务器内存。在您的情况下,在 Where.
中使用 Ronum < 100
SELECT * BULK COLLECT INTO NESTED_TABLE FROM SCHEMA.TABLE_NAME WHERE rownum <= 1000;
或Oracle12c
SELECT * BULK COLLECT INTO NESTED_TABLE FROM SCHEMA.TABLE_NAME FETCH FIRST 1000 ROWS ONLY;
我正在尝试使用 limit 关键字对数据库查询设置限制。
这是我当前的工作查询,没有 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;
/
我想避免使用游标,但仍然使用如下的 limit 关键字。
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;
/
不能在主查询中使用保留字 Limit,这只能使用游标进行批量收集以优化服务器内存。在您的情况下,在 Where.
中使用 Ronum < 100SELECT * BULK COLLECT INTO NESTED_TABLE FROM SCHEMA.TABLE_NAME WHERE rownum <= 1000;
或Oracle12c
SELECT * BULK COLLECT INTO NESTED_TABLE FROM SCHEMA.TABLE_NAME FETCH FIRST 1000 ROWS ONLY;