sql >> Databasteknik >  >> RDS >> Oracle

Hur väljer man 200 poster för varje 'for loop'-iteration i oracle?

Som nämnts i mina kommentarer kan du använda BULK samla och LIMIT möjlighet att uppnå ditt krav. Se nedan demo. Här i varje gång kommer loopen att köras och välja 200 uppgifter.

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. Hur krymper man temporärt bordsutrymme i Oracle?

  2. Flera mysql INSERT-satser i en fråga php

  3. mysql sök efter en catid i ett textfält

  4. Fel:Kolumnen finns inte