PL/SQL 循環語句


1、基本 LOOP 循環語句

語法:

LOOP 
   語句序列; 
END LOOP;

其中,語句序列中需要一個EXIT語句或一個EXIT WHEN語句來中斷循環。

實例:

DECLARE 
   x number(2) := 10; 
BEGIN 
   LOOP 
      dbms_output.put_line(x); 
      x := x + 10; 
      IF x > 50 THEN 
         exit; 
      END IF; 
   END LOOP; 
   dbms_output.put_line('LOOP結束: ' || x); 
END;
或者

使用EXIT WHEN語句來代替EXIT語句:
DECLARE 
   x number(2) := 10; 
BEGIN 
   LOOP 
      dbms_output.put_line(x); 
      x := x + 10; 
      EXIT WHEN x > 50; 
   END LOOP; 
   dbms_output.put_line('LOOP結束: ' || x); 
END;

 

2、WHILE LOOP 語句

語法:

WHILE 條件 LOOP 
   語句序列; 
END LOOP;

實例:

DECLARE 
   x number(2) := 10; 
BEGIN 
   WHILE x < 20 LOOP 
      dbms_output.put_line(x); 
      x := x + 1; 
   END LOOP; 
END;

3、FOR LOOP 語句

語法:

FOR counter IN initial_value .. final_value LOOP 
   語句序列; 
END LOOP;

說明:
   循環變量或計數器的initial_value和final_value可以是文字,變量或表達式,但必須對數字求值。 否則,PL/SQL引發預定義的異常VALUE_ERROR;
   initial_value不必為1; 但是,循環計數器增量(或減量)必須為1;
   PL/SQL允許在運行時動態地確定循環范圍。

實例:

DECLARE 
   x number(2); 
BEGIN 
   FOR x IN 10 .. 20 LOOP 
      dbms_output.put_line(x); 
  END LOOP; 
END; 

輸出結果:
10
11
12
13
14
15
16
17
18
19
20

反轉FOR LOOP語句:

DECLARE 
   x number(2) ; 
BEGIN 
   FOR x IN REVERSE 10 .. 20 LOOP 
      dbms_output.put_line(x); 
   END LOOP; 
END; 

輸出結果:
20
19
18
17
16
15
14
13
12
11
10

注:可在任何其他基本循環中使用一個或多個循環,如:whilefor循環。

4、標記PL/SQL循環

標簽使用雙尖括號(<<>>)括起來,並顯示在LOOP語句的開頭。標簽名稱也可以出現在LOOP語句的末尾。

實例:

實例1:
DECLARE 
   i number(1); 
   j number(1); 
BEGIN 
   << outer_loop >> 
   FOR i IN 1..3 LOOP 
      << inner_loop >> 
      FOR j IN 1..3 LOOP 
         dbms_output.put_line('i = '|| i || ', j = ' || j); 
      END loop inner_loop; 
   END LOOP outer_loop; 
END;

實例2:
DECLARE 
   x number(2) := 0; 
BEGIN 
   << mark_loop >>
   x := x + 1;
   IF x < 10 THEN
     dbms_output.put_line(x);
     GOTO mark_loop;
   END IF;
END;

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM