迴圈語句可以控制程式多次重複地執行某一組語句。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 基本結構...