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

Przykład Oracle WHILE LOOP

W Oracle PL/SQL instrukcja WHILE LOOP wykonuje kod zapisany między WHILE LOOP i END LOOP, dopóki warunek nie zostanie spełniony. Poniżej podaję kilka przykładów instrukcji Oracle WHILE LOOP.

Składnia

WHILE logical_condition LOOP
-- some PL/SQL code
END LOOP;

Przykłady Oracle PODCZAS PĘTLI

1. Zapętl 10 razy i wydrukuj tabelę

W poniższym przykładzie, WHILE LOOP wykona instrukcje do momentu, gdy wartość zmiennej n_num będzie mniejsza lub równa 10. wydrukuje tablicę 2, zwiększając wartość zmiennej n_num o 1 dla każdej iteracji pętli.

SET SERVEROUTPUT ON;
DECLARE
   n_num NUMBER;
   n_table number := 2;
BEGIN
   n_num := 1;
   WHILE n_num <= 10
   LOOP
      DBMS_OUTPUT.put_line ('2 x ' || n_num || ' = '||(n_table * n_num));
      n_num := n_num + 1;
   END LOOP;
END;
/

Wyjście:

2 x 1 = 2
2 x 2 = 4
2 x 3 = 6
2 x 4 = 8
2 x 5 = 10
2 x 6 = 12
2 x 7 = 14
2 x 8 = 16
2 x 9 = 18
2 x 10 = 20
PL/SQL procedure successfully completed.

Nie zapomnij zwiększyć wartości zmiennej n_num, tak aby mogła osiągnąć 10, w przeciwnym razie będzie to nieskończona pętla.

2. Zapętlanie, aż wartość zmiennej logicznej będzie PRAWDA

W poniższym przykładzie będzie się zapętlał, aż wartość zmiennej logicznej b_run będzie PRAWDA i wyświetli wartość zmiennej n_num, zwiększając ją o 1 dla każdej iteracji, a gdy wartość zmiennej n_num jest większa niż 5, ustawi zmienną b_run na FALSE , aby WHILE LOOP mógł zakończyć swoją pracę.

SET SERVEROUTPUT ON;
DECLARE
   n_num NUMBER;
   b_run BOOLEAN := TRUE;
BEGIN
   n_num := 1;

   WHILE b_run
   LOOP
      DBMS_OUTPUT.put_line (n_num || ' Times');
      n_num := n_num + 1;
      IF n_num > 5
      THEN
         b_run := FALSE;
      END IF;
   END LOOP;
END;
/

Wyjście:

1 Times
2 Times
3 Times
4 Times
5 Times
PL/SQL procedure successfully completed.

W tym celu również nie zapomnij ustawić wartości zmiennej b_run na FALSE, w przeciwnym razie będzie to nieskończona pętla. Możesz także napisać wyjście; zamiast b_run :=FALSE; oświadczenie aby wyjść z pętli .

Zobacz też:

  • Przykład Oracle FOR LOOP REVERSE
  • Program PL/SQL do drukowania danych pracowników
  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. LITAGG w Oracle, aby zwrócić różne wartości

  2. Zestaw testowy konfiguracji AOL/J

  3. Jak najlepiej podzielić struny csv w Oracle 9i?

  4. ORA-24408:nie można wygenerować unikalnej nazwy grupy serwerów

  5. Dlaczego PL/SQL nie respektuje uprawnień przyznanych przez role?