Oracle迴圈語句

2021-09-02 01:14:19 字數 2697 閱讀 6330

1,當不確定多少次要執行迴圈體並且希望迴圈體至少執行一次,則會使用loop語句

loop

- 執行每個通過迴圈的**語句

end loop;

例項:

loop

week := day * 7;

exit when week > 21;

end loop;

此時當week值大於21時終止,可以使用exit語句或當遇到exit when語句的結果為true時終止loop語句。

2,當想要執行迴圈主體固定次數時,可使用for loop迴圈

for loop_counter in [reverse] lowest_number..highest_number

loop

end loop;

loop_counter - 迴圈計數器變數。

reverse - 可選的。 如果指定,迴圈計數器將反向計數。(如果指定了reverse,那麼highest_number將是loop_counter的起始值,而lowest_number將是loop_counter的結束值。)

lowest_number - loop_counter的起始值。

highest_number - loop_counter的結束值。

statements - 執行每個通過迴圈的**語句。

例項:

for test in 1..10

loop

rtest := test * 2;

end loop;

迴圈將10次。 test將從1開始並在10結束。

for test in reverse 1..10

loop

rtest := test * 2;

end loop;

使用reverse,相反的順序執行,同樣迴圈10次,test將從10開始並在1結束。

3,當想要獲取並處理游標中的每條記錄時,將使用cursor for loop。 當游標中的所有記錄都被取出時,cursor for loop將終止。

for record_index in cursor_name

loop

end loop;

record_index - 記錄的索引。

cursor_name - 希望從中獲取記錄的游標的名稱。

statements - 執行**的語句通過cursor for loop。

例項:

create or replace function totalprice

( name_in in varchar2 )

return varchar2

is total_p number(6);

cursor c1 is

select bprice

from book

where bname = name_in;

begin

total_p := 0;

for emp_c in c1

loop

total_p := total_p + emp_c.bprice;

end loop;

return total_p;

end;

上例中,建立了乙個名為c1的游標。 從游標c1中取出所有記錄後,cursor for迴圈將終止。

4,當不確定執行迴圈體的次數,並且迴圈體可能一次都不會執行,則使用while loop。

while condition

loop

- 執行每個通過迴圈的**語句。

end loop;

condition - 條件是每次通過迴圈的測試。 如果條件評估為true,則執行迴圈體。 如果條件評估為false,則迴圈終止。

例項:

while money <= 200

loop

money := price * 10;

end loop;

當money的值大於200,迴圈將終止,while loop將在money <= 200時繼續,並且當money> 200,迴圈將終止。

5,當不知道想要迴圈體執行多少次時,可使用模擬(oracle中是沒有repeat until loop)的repeat until loop語句。

loop

- 執行每個通過迴圈的**語句。

exit [ when boolean_condition ];

end loop;

boolean_condition - 可選的。 這是終止迴圈的條件。

例項:

loop

money := price * 10;

exit when money > 2000;

end loop;

我們希望迴圈重複,直到money的值大於2000時終止,所以使用exit when語句。

6,exit語句最常用於終止loop語句。

exit [when boolean_condition];

boolean_condition - 可選的。 這是終止loop的條件。

例項:

loop

money := price * 10;

exit when money > 2000;

end loop;

當money的值大於2000時,loop迴圈會終止。

Oracle 迴圈語句

在pl sql中最簡單格式的迴圈語句是基本迴圈語句,這種迴圈語句以loop開始,以end loop結束,其語法如下 loop statement1 exit when condition 注意 當編寫基本迴圈時,一定要包含exit語句,否則pl sql會陷入死迴圈。create table temp...

oracle 迴圈語句

1.基本迴圈 至少會執行一次 declare i int 1 begin loop 迴圈開始 dbms output.put line value i exit when i 10 退出迴圈條件 i i 1 迴圈監視變數 end loop 迴圈結束 end 2.while迴圈 只有滿足while新增...

oracle學習 迴圈語句

loop迴圈 create or replace procedure pro test loop is i number begin i 0 loop i i 1 dbms output.put line i if i 5 then exit end if end loop end pro test...