In Oracle PL/SQL führt die WHILE LOOP-Anweisung den zwischen WHILE LOOP und END LOOP geschriebenen Code aus, bis die Bedingung wahr ist. Unten gebe ich einige Beispiele für die WHILE LOOP-Anweisung von Oracle.
Syntax
WHILE logical_condition LOOP -- some PL/SQL code END LOOP;
Oracle WHILE LOOP-Beispiele
1. Schleife 10 mal und drucke die Tabelle
Im folgenden Beispiel führt WHILE LOOP die Anweisungen aus, bis der Wert der n_num-Variable kleiner oder gleich 10 ist. Es wird die Tabelle von 2 drucken, indem der Wert der n_num-Variable mit 1 für jede Iteration der Schleife erhöht wird.
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; /
Ausgabe:
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.
Vergessen Sie nicht, den Wert der n_num-Variablen zu erhöhen, damit sie bis zu 10 erreichen kann, sonst wird es eine Endlosschleife sein.
2. Schleife bis der boolesche Variablenwert WAHR ist
Im folgenden Beispiel wird es eine Schleife durchlaufen, bis der boolesche Variablenwert b_run WAHR ist, und den Variablenwert n_num drucken, indem es ihn für jede Iteration um 1 erhöht, und wenn der Wert der Variablen n_num größer als 5 ist, wird die Variable b_run auf FALSE gesetzt , damit WHILE LOOP seine Arbeit beenden kann.
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; /
Ausgabe:
1 Times 2 Times 3 Times 4 Times 5 Times PL/SQL procedure successfully completed.
Vergessen Sie auch hierfür nicht, den Variablenwert b_run auf FALSE zu setzen, sonst wird es eine Endlosschleife sein. Sie können auch den exit; schreiben statt b_run :=FALSE; Anweisung um die Schleife zu verlassen .
Siehe auch:
- Oracle FOR LOOP REVERSE-Beispiel
- PL/SQL-Programm zum Drucken von Mitarbeiterdetails