Oracle LOOP迴圈控制語句

2021-09-28 22:48:43 字數 3318 閱讀 4058

在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 哈哈哈哈哈...