Wie in meinen Kommentaren erwähnt, können Sie BULK
verwenden sammeln und LIMIT
Möglichkeit, Ihre Anforderung zu erfüllen. Siehe Demo unten. Hier wird jedes Mal die Schleife ausgeführt und 200
ausgewählt Aufzeichnungen.
DECLARE
CURSOR rec
IS
SELECT LEVEL
FROM DUAL
CONNECT BY LEVEL < 401;
TYPE v_var IS TABLE OF NUMBER
INDEX BY PLS_INTEGER;
var v_var;
BEGIN
OPEN rec;
LOOP
FETCH rec BULK COLLECT INTO var LIMIT 200;
EXIT WHEN (var.count = 0);
FOR i IN 1 .. var.COUNT
LOOP
DBMS_OUTPUT.put_line (var (i));
END LOOP;
END LOOP;
CLOSE rec;
END;