在pl/sql中可以使用loop語句對資料進行迴圈處理,利用該語句可以迴圈執行指定的語句序列。常用的loop迴圈語句包含3種形式:基本的loop、while...loop和for...loop。
loop語句的基本語法結構如下:
[<>]
loop
statement...
end loop [label_name]
【語法說明】
<>:loop結構的標籤,是可選項。
loop:loop迴圈開始標誌。
statement:loop語句中迴圈執行的語句序列。
end loop:loop迴圈結束標誌,可以新增loop結構的標籤。
1.基本的loop語句
例項:要求宣告變數,每次迴圈都需要為變數增加數字1,並輸出結果。當變數值大於3時,退出迴圈操作。
a、利用exit...when結束迴圈操作。
sql> set serveroutput on;
sql> --exit when
sql> declare
v_rlt number(8):=-3;
begin
<>
loop
dbms_output.put_line('v_rlt = '||v_rlt);
v_rlt:=v_rlt+1;
exit fst_loop when v_rlt > 3;
end loop;
dbms_output.put_line('loop迴圈已經結束!');
end;
/ v_rlt = -3
v_rlt = -2
v_rlt = -1
v_rlt = 0
v_rlt = 1
v_rlt = 2
v_rlt = 3
loop迴圈已經結束!
pl/sql procedure successfully completed
b、利用if...exit語句結束迴圈
sql> --if exit
sql> declare
v_rlt number(8):=-3;
begin
<>
loop
dbms_output.put_line('v_rlt = '||v_rlt);
v_rlt:=v_rlt+1;
if v_rlt > 3 then
dbms_output.put_line('變數的值已經大於3,當前值為'||v_rlt);
exit fst_loop;
end if;
end loop fst_loop;
dbms_output.put_line('loop迴圈已經結束!');
end; /
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
2、while...loop結構[<>]
while boolean_expression
loop
statement...
end loop [label_name];
【語法說明】
boolean_expression:布林表示式。
statement:語句序列,當boolean_expression為true時,該語句序列可獲得執行權。
c、while...loop結構
sql> --while...loop
sql> declare
v_rlt number(8):=-3;
begin
<>
while(v_rlt < 4)
loop
dbms_output.put_line('v_rlt = '||v_rlt);
v_rlt:=v_rlt+1;
end loop while_loop;
dbms_output.put_line('while迴圈已經結束!');
end; /
v_rlt = -3
v_rlt = -2
v_rlt = -1
v_rlt = 0
v_rlt = 1
v_rlt = 2
v_rlt = 3
while迴圈已經結束!
pl/sql procedure successfully completed
3.for...loop結構for...loop語句的語法結構如下:
[<>]
for index_name in
[ reverse ]
lower_bound .. upper_bound
loop
statement...
end loop [label_name];
【語法說明】
index_name:迴圈計數器,是乙個變數,它可以得到當前的迴圈指數。需要注意的是,不能為其手工賦值。
reverse:可選項,指定迴圈方式。預設的迴圈方式由下標(lower_bound)到上標(upper_bound)。使用該選項則從上標界到下標界。
lower_bound:迴圈範圍的下標界。
upper_bound:迴圈範圍的上標界。
下標和上標之間的".."不能省略。
d、for...loop結構
sql> --for..loop
sql> begin
for v_rlt in -3..3 loop
dbms_output.put_line('v_rlt = '||v_rlt);
end loop;
dbms_output.put_line('for迴圈已經結束!');
end; /
v_rlt = -3
v_rlt = -2
v_rlt = -1
v_rlt = 0
v_rlt = 1
v_rlt = 2
v_rlt = 3
for迴圈已經結束!
pl/sql procedure successfully completed
oracle Loop迴圈示例
loop迴圈用法 輸出1到10 declare v num number 2 0 begin loop v num v num 1 exit when v num 10 上面退出迴圈也可以用下面3行 if v num 9 then exit end if dbms output.put line v...
Oracle loop迴圈無法插入資料
以下的測試基於scott使用者下的emp表 首先用while迴圈進行測試,向emp表插入999條資料 1 declare 2 i emp.empno type 1 3begin 4while i 1000 5loop 6insert into emp empno,ename,sal values i...
Python流程控制語句 while迴圈語句
說明 迴圈是在滿足條件下周而復始的執行的情況 while 關鍵字用於建立迴圈,在滿足條件時,將迴圈執行語句 1,while迴圈基本寫法 while 迴圈執行條件 被迴圈執行的 塊 修改迴圈的判斷條件 示例1 i 0 while i 5 如果i變數值小於5 才會執行下面迴圈語句 print 哈哈哈哈哈...