您的位置:首页 > 数据库 > Oracle

oracle存储过程循环

2016-05-29 23:11 507 查看
--流程控制

declare

str varchar(18);

begin

str:='b';

if(str='a')
then dbms_output.put_line('a');

elsif(str='b')
then dbms_output.put_line('b');

else
dbms_output.put_line('other');

end if;

end;

--循环控制

--loop循环控制

declare

i number;

begin

i:=1;

loop

dbms_output.put_line(i);

i:=i+1;

exit when i=100;

end loop;

end;

--嵌套循环

declare

i number;

j number;

begin

i:=0;

j:=0;

loop

i:=i+1;

dbms_output.put_line('i='||i);

exit when i=5;

loop

j:=j+1;

dbms_output.put_line('j='||j);

exit when j=5;

end loop;

j:=0;

end loop;

end;

--退出整个循环

declare

i number;

j number;

begin

i:=0;

j:=0;

<<outloop>>loop

i:=i+1;

dbms_output.put_line('i='||i);

<<inloop>>loop

j:=j+1;

dbms_output.put_line('j='||j);

exit outloop when j=10;

end loop;

j:=0;

exit when i=10;

end loop;

end;

--for 循环

begin

for i in 1..10 loop
dbms_output.put_line(i);

end loop;

end;

--while循环

declare

i number;

begin

i:=0;

while(i<10) loop
dbms_output.put_line(i);
i:=i+1;

end loop;

end;

--异常处理

declare

v_sqlcode varchar(50);

v_sqlerrm varchar(200);

tb_ekp_change ekp_change%rowtype; 

begin

select *

into tb_ekp_change

from ekp_change

where fd_id=1;

exception
when others then
v_sqlcode:=SQLCODE;
v_sqlerrm:=SQLERRM;
dbms_output.put_line(v_sqlcode);
dbms_output.put_line(v_sqlerrm);

end;
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息