Oracle中的迴圈

2021-06-16 08:03:27 字數 1999 閱讀 8853

主要有以下五種迴圈:exit when、loop、while、for(普通迴圈)、for(游標迴圈),下面舉例一一說明(均為儲存過程)。

1、exit when迴圈:

create or replace procedure proc_test_exit_when is

i number;

begin

i:=0;

loop

exit when(i>5);

dbms_output.put_line(i);

i:=i+1;

end loop;

end proc_test_exit_when;

——————————————————–俺是分割線—————————————————————–

2、loop迴圈:

create or replace procedure proc_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 proc_test_loop;

——————————————————–俺是分割線—————————————————————–

3、while迴圈:

create or replace procedure proc_test_while is

i number;

begin

i:=0;

while i<5 loop

i:=i+1;

dbms_output.put_line(i);

end loop;

end proc_test_while;

——————————————————–俺是分割線—————————————————————–

4、for普通迴圈:

create or replace procedure proc_test_for is

i number;

begin

i:=0;

for i in 1..5 loop

dbms_output.put_line(i);

end loop;

end proc_test_for;

——————————————————–俺是分割線—————————————————————–

5、for游標迴圈:

create or replace procedure proc_test_cursor is

userrow test%rowtype;

cursor userrows is

select * from test;

begin

for userrow in userrows loop

dbms_output.put_line(userrow.id||』,'||userrow.name||』,'||userrows%rowcount);

end loop;

end proc_test_cursor;

——————————————————–俺是分割線—————————————————————–

上面所示為儲存過程相應**,你可以通過如下方式進行測試:

進入pl/sql, 執行 檔案->新建->程式視窗->空白,拷貝以上各段**,到pl/sql空白視窗中,安f8執行編譯。

再 執行 檔案->新建->命令視窗 進入命令視窗 執行一下  set serveroutput on 這句**,然後,輸入exec 相應儲存過程,ok。

第5中迴圈 要求新建乙個名為test的表 字段 id、name,插入幾條資料,進行測試即可。

本文出自 「gjhgkh」 部落格,請務必保留此出處

Oracle 預存中 的迴圈!

oracle 預存中 的迴圈!查詢資料表 a10中的 a10 c4,a10 c5 a10 c4 相同時將a10 c5 寫到乙個table表中的一格字段中 procedure sp a10 q6 stra10 1 sta varchar2,起始學年度 10 stra10 1 end varchar2,...

oracle 中退出迴圈的用法

declare i integer j integer begin i 1 j 1 for i in 1 10 loop 主迴圈 for j in 1 10 loop 次迴圈 exit main loop when i 2 if j 3 then exit 退出當前迴圈 end if if i 5 ...

Oracle中的loop迴圈的例子

oracle中的loop迴圈的例子 第一 loop.exit when.end loop sql declare temp salary employee.salary type temp emp employee rowtype cursor mycursor is select from emp...