PLSQL中的迴圈語句

2021-07-31 06:07:40 字數 3397 閱讀 7989

迴圈語句可以控制程式多次重複地執行某一組語句。pl/sql中常用的迴圈語句有3種,在此基礎上還可以演變出許多巢狀迴圈。

[<>]   /*標籤名*/

loop

statements;

exit

when condition;

endloop [label_name]

語法說明:

<>:loop結構的標籤,是可選項。

loop:loop迴圈開始標誌。

statements:loop語句中迴圈執行的語句序列。

end loop:loop迴圈結束標誌,可以新增loop結構的標籤。

例項:要求宣告變數,每次迴圈都需要為變數增加數字1,並輸出結果。當變數值大於3時,退出迴圈操作。

sql> --if

exit

sql> declare

2 v_rlt number(8):=-3;

3begin

4<>

5loop

6 dbms_output.put_line('v_rlt = '||v_rlt);

7 v_rlt:=v_rlt+1;

8if v_rlt > 3

then

9 dbms_output.put_line('變數的值已經大於3,當前值為'||v_rlt);

10exit fst_loop;

11endif;

12endloop fst_loop;

13 dbms_output.put_line('loop迴圈已經結束!');

14end;

15 /

v_rlt = -3

v_rlt = -2

v_rlt = -1

v_rlt = 0

v_rlt = 1

v_rlt = 2

v_rlt = 3

變數的值已經大於3,當前值為4

loop迴圈已經結束!

pl/sql procedure

successfully

completed

sql> --if

exit

sql> declare

2 v_rlt number(8):=-3;

3begin

4<>

5loop

6 dbms_output.put_line('v_rlt = '||v_rlt);

7 v_rlt:=v_rlt+1;

8if v_rlt > 3

then

9 dbms_output.put_line('變數的值已經大於3,當前值為'||v_rlt);

10exit fst_loop;

11endif;

12endloop fst_loop;

13 dbms_output.put_line('loop迴圈已經結束!');

14end;

15 /

v_rlt = -3

v_rlt = -2

v_rlt = -1

v_rlt = 0

v_rlt = 1

v_rlt = 2

v_rlt = 3

變數的值已經大於3,當前值為4

loop迴圈已經結束!

pl/sql procedure

successfully

completed

語法說明:

boolean_expression:布林表示式。

statement:語句序列,當boolean_expression為true時,該語句序列可獲得執行權。

[<>]

for index_name in

[ reverse ]

lower_bound .. upper_bound

loop

statement...

endloop [label_name];

語法說明:

index_name:迴圈計數器,是乙個變數,它可以得到當前的迴圈指數。需要注意的是,不能為其手工賦值。

reverse:可選項,指定迴圈方式。預設的迴圈方式由下標(lower_bound)到上標(upper_bound)。使用該選項則從上標界到下標界。

lower_bound:迴圈範圍的下標界。

upper_bound:迴圈範圍的上標界。

下標和上標之間的」..」不能省略。

語法格式:

while condition

loop

statements;

endloop;

語法說明:

在執行while迴圈時,首先會檢查判斷條件(condition),如果條件開始就為false,程式直接執行end loop後面的語句,則該迴圈將一次都不執行。如果條件為ture,這執行迴圈體內的語句,然後再檢查判斷條件。

例子:

set serveroutput on;

declare

var_i number:=1;

begin

while var_i < 11 loop

dbms_output.put_line(var_i);

var_i:=var_i+1;

end loop;

end;

/

語法格式:

for loop_variable_name in [reverse] lower_bound..upper_bound

loop

statements;

end loop;

語法說明:

i.loop_variable_name:引數指定迴圈計數器,是乙個變數;在這裡可以使用已有的變數,也可以使用乙個新的變數,預設按照遞增方式,加入關鍵字[reverse]表示遞減,步長均為1。

ii.lower_bound..upper_bound:指定了迴圈計數器的上限和下限,即區間。

iii. for迴圈中的迴圈計數器只能在迴圈體內部使用,不能在迴圈體的外部使用。

PL SQL 迴圈控制語句

判斷語句 if.else declare v age number not null 50 beginif0 v age and v age 18 then dbms output.put line 兒童 elsif 18 v age and v age 30 then dbms output.pu...

PL SQL基本迴圈語句

基本迴圈結構包含loop和end loop語句之間的語句序列。通過每次迭代,執行語句序列,然後在迴圈頂部繼續控制。pl sql程式語言的基本迴圈語法是 loop sequence of statements end loop 這裡,語句序列 sequence of statements 可以是單個語...

怎樣記住PL SQL迴圈語句

iamlaosong文 oracle pl sql的迴圈控制語句有三種,如何記住呢?很簡單,那就是 基本結構loop。end loop,基本結構前加個while,或者基本結構前加個for。基本結構用exit或者exit when退出,其它兩種除此之外,還根據while或者for退出,即 1 基本結構...