sql >> Database teknologi >  >> RDS >> Oracle

Eksempel på Oracle WHILE LOOP

I Oracle PL/SQL udfører WHILE LOOP-sætning koden skrevet mellem WHILE LOOP og END LOOP, indtil betingelsen er sand. Nedenfor giver jeg nogle eksempler på Oracle WHILE LOOP-sætning.

Syntaks

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

Eksempler på Oracle WHILE LOOP

1. Sløjfe 10 gange og udskriv bordet

I det følgende eksempel vil WHILE LOOP udføre sætningerne, indtil værdien af ​​n_num-variabelen er mindre end eller lig med 10. Den udskriver tabellen med 2 ved at øge værdien af ​​n_num-variablen med 1 for hver iteration af løkken.

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

Output:

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.

Glem ikke at øge værdien af ​​variabelen n_num, så den kan nå op til 10, ellers bliver den uendelig sløjfe.

2. At sløjfe, indtil den boolske variabelværdi er SAND

I det følgende eksempel vil den løkke, indtil den booleske variabelværdi b_run er TRUE, og den vil udskrive n_num-variabelværdien ved at øge den med 1 for hver iteration, og når værdien af ​​n_num-variabelen er større end 5, indstilles b_run-variablen til FALSE , så WHILE LOOP kan afslutte sit job.

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

Output:

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

For dette også, glem ikke at sætte b_run variabel værdi til FALSE, ellers vil det være uendelig loop. Du kan også skrive exit; i stedet for b_run :=FALSE; sætning for at forlade sløjfen .

Se også:

  • Oracle FOR LOOP REVERSE-eksempel
  • PL/SQL-program til at udskrive medarbejderoplysninger
  1. Rækkenumre med ikke-deterministisk rækkefølge

  2. ORA-00911:ugyldigt tegn

  3. SQL-udvikler 4

  4. Mulige måder at løse problemet med korruption af SQL Server-metadata