sql >> Databasteknik >  >> RDS >> Oracle

Oracle WHILE LOOP Exempel

I Oracle PL/SQL exekverar WHILE LOOP-satsen koden som skrivits mellan WHILE LOOP och END LOOP tills villkoret är sant. Nedan ger jag några exempel för Oracle WHILE LOOP-satsen.

Syntax

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

Exempel på Oracle WHILE LOOP

1. Slinga 10 gånger och skriv ut tabellen

I följande exempel kommer WHILE LOOP att köra satserna tills värdet på variabeln n_num är mindre än eller lika med 10. Den kommer att skriva ut tabellen med 2 genom att öka värdet på variabeln n_num med 1 för varje iteration av loopen.

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;
/

Utdata:

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.

Glöm inte att öka värdet på variabeln n_num så att den kan nå upp till 10, annars blir den oändlig loop.

2. Att loopa tills det booleska variabelvärdet är TRUE

I följande exempel kommer den att loopa tills det booleska variabelvärdet b_run är TRUE och kommer att skriva ut variabelvärdet n_num genom att öka det med 1 för varje iteration och när värdet för variabeln n_num är större än 5 kommer variabeln b_run att ställas in på FALSE , så att WHILE LOOP kan avsluta sitt jobb.

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;
/

Utdata:

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

För detta också, glöm inte att ställa in b_run variabelvärdet till FALSE, annars blir det oändlig loop. Du kan också skriva exit; istället för b_run :=FALSE; uttalande för att lämna loopen .

Se även:

  • Oracle FOR LOOP REVERSE Exempel
  • PL/SQL-program för att skriva ut personalinformation
  1. Hur man uppdaterar data i en anpassad dialogruta

  2. SQL - OM FINNS UPPDATERA ANNARS INSERT INTO

  3. Byt in en partition i SQL Server (T-SQL)

  4. ER_NOT_SUPPORTED_AUTH_MODE - MySQL-server