sql >> Database teknologi >  >> RDS >> Oracle

Hvordan vælger man 200 poster for hver 'for loop' iteration i oracle?

Som nævnt i mine kommentarer, kan du bruge BULK indsamle og LIMIT mulighed for at opfylde dit krav. Se nedenstående demo. Her i hver gang vil løkken køre og vælge 200 optegnelser.

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;



  1. For sidste gang, NEJ, du kan ikke stole på IDENT_CURRENT()

  2. SQL Vælg Distinct

  3. Tjek, om en tabel har en TIMESTAMP-kolonne i SQL Server med OBJECTPROPERTY()

  4. SQL-forespørgsel til at tælle ændringer af værdier i en kolonne