Oracle
 sql >> Datenbank >  >> RDS >> Oracle

Wie wählt man 200 Datensätze für jede 'for loop'-Iteration in Oracle aus?

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;