sql >> Databáze >  >> RDS >> Oracle

Příklad Oracle WHILE LOOP

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
  1. Způsoby, jak opravit chybu I/O na základě logické konzistence serveru SQL Server

  2. Jak ASIN() funguje v MariaDB

  3. Proveďte regulární výraz (nahraďte) v dotazu SQL

  4. Jak provést SQL dotaz bez zobrazení výsledků