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