V Oracle PL/SQL příkaz WHILE LOOP provádí kód zapsaný mezi WHILE LOOP a END LOOP, dokud není podmínka pravdivá. Níže uvádím několik příkladů výrazu Oracle WHILE LOOP.
Syntaxe
WHILE logical_condition LOOP -- some PL/SQL code END LOOP;
Příklady Oracle WHILE LOOP
1. Opakujte 10krát a vytiskněte tabulku
V následujícím příkladu bude WHILE LOOP provádět příkazy, dokud hodnota proměnné n_num nebude menší nebo rovna 10. vytiskne tabulku 2 zvýšením hodnoty proměnné n_num o 1 pro každou iteraci cyklu.
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; /
Výstup:
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.
Nezapomeňte zvýšit hodnotu proměnné n_num, aby mohla dosáhnout až 10, jinak to bude nekonečná smyčka.
2. Opakovat, dokud hodnota booleovské proměnné nebude TRUE
V následujícím příkladu se bude opakovat, dokud hodnota booleovské proměnné b_run nebude PRAVDA, a vypíše hodnotu proměnné n_num jejím zvýšením o 1 pro každou iteraci, a když je hodnota proměnné n_num větší než 5, nastaví proměnnou b_run na FALSE. , takže WHILE LOOP může dokončit svou práci.
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; /
Výstup:
1 Times 2 Times 3 Times 4 Times 5 Times PL/SQL procedure successfully completed.
Za tímto účelem také nezapomeňte nastavit hodnotu proměnné b_run na FALSE, jinak to bude nekonečná smyčka. Můžete také napsat exit; místo b_run :=FALSE; příkaz k ukončení smyčky .
Viz také:
- Příklad Oracle FOR LOOP REVERSE
- Program PL/SQL pro tisk podrobností o zaměstnanci