PL/SQL基础编程之(四) [LOOP WHILE FOR][异常处理、自定义异常]

本文介绍了Oracle数据库中不同类型的循环结构及其使用方法,包括LOOP、WHILE-LOOP、FOR-LOOP,并展示了如何结合IF语句控制循环流程。此外,还探讨了如何在Oracle中处理异常情况,包括使用预定义异常和自定义异常。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

1、LOOP循环案例  loop和IF的结合
declare
x number;
begin
x:=0;
loop    --循环开始
x:=x+1;
if x>3 then   --循环体
exit;      
end if;   
dbms_output.put_line('内x的值'||x); --循环体
end loop;   --结束循环
dbms_output.put_line('外X的值'||x);
end;
/
输出结果:
内x的值1
内x的值2
内x的值3
外X的值4



2、while和loop结合循环的案例

declare
x number;
y varchar2(10);
begin
x:=1;
while x<=3 loop   		--while和loop循环
x:=x+1;
dbms_output.put_line('x的值为'||x);
end loop;    --结束循环
end;
/

3、for和loop结合循环的案例 [reverse]是可选的,意思是说反过来 5..1的意思,在Oracle的for循环递增量只能是1,不能修改
begin
for I [reverse] in 1..5 loop    --for和loop结合
dbms_output.put_line('i的值'||i);
end loop;
dbms_output.put_line('out');
end;
/


4、通过goto自己控制每一步循环的方式

declare
x number;
begin
x:=0;
<<gsign>>    --定义goto标签
x:=x+1;      --这里加几就是控制step的方法
dbms_output.put_line(x);  
if x<5 then
goto gsign;    --将语句定义到上面goto的地方
end if;
end;
/

异常处理表:
《案例在下面》
 







5、Oracle中处理异常的案例
declare
x varchar2(10);
begin
select a1 into x from a where a2='qwe';   --将值查询出来赋值给变量
dbms_output.put_line('x的值'||x);
exception
--异常处理数据,如果不存在的话怎么办?
when NO_DATA_FOUND then dbms_output.put_line('没有数据');  
end;
/

6、Oracle自定义异常   e Exception
declare
x varchar2(10);
e exception;  	 --定义exception变量
begin
select a1 into x from a where a2='mmm';
if x <> 'qqq' then
raise e;        --自定义异常必须要raise一下
end if;
exception
when e then     --然后exception里面就这么写就可以了
dbms_output.put_line('aaaaaa');
end;
/
退出循环用 exit when boolean判断

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值