Như đã đề cập trong phần nhận xét của tôi, bạn có thể sử dụng BULK
thu thập và LIMIT
tùy chọn để đạt được yêu cầu của bạn. Xem bản demo dưới đây. Tại đây, mỗi lần vòng lặp sẽ chạy và chọn 200
Hồ sơ.
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;