Oracle
 sql >> Baza danych >  >> RDS >> Oracle

Jak wybrać 200 rekordów dla każdej iteracji 'for loop' w Oracle?

Jak wspomniałem w moich komentarzach, możesz użyć BULK zbierz i LIMIT możliwość spełnienia swoich wymagań. Zobacz poniżej demo. Tutaj za każdym razem, gdy pętla się uruchomi i wybierze 200 dokumentacja.

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. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Jak pracujesz nad pakietami Oracle we współpracującym środowisku z kontrolą wersji?

  2. Wycofanie zmian w wyjątku PLSQL

  3. Automatyczne generowanie kluczy hibernacji za pomocą MySQL i Oracle

  4. Przykład Oracle Dynamic SQL do wstawiania rekordu przy użyciu DBMS_SQL

  5. OracleConnection.Open wyrzuca ORA-12541 TNS no listener