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