oracle循环rs,新手求教: 一个oracle存储过程中使用CURSOR 和loop循环 怎样写可以实现:如果某此loop循环,发生异常报-O...

满意答案

CREATE OR REPLACE PROCEDURE p_test_emp is

CURSOR c1 is

select empno, ename from emp;

t_c1 c1%rowtype;

err exception;

begin

open c1;

loop

FETCH c1

INTO t_c1;

if (c1%found) then

insert into emp_test (empno, ename) values (t_c1.empno, t_c1.ename);

commit;

else

raise err;(这个err 需要在前面定义的,类型为异常)

end if;

end loop;

close c1;

EXCEPTION

when err then

(这里可以写上你需要的提示)

WHEN OTHERS THEN

rollback;

end;

这样写的好处就是 当里面发生错误的时候直接跳到异常中的err 不会中断这段代码的执行。

楼上说的把exeception放到循环里面也是不行的,主要就是要修改exeception中,不能rollback,否则的一定执行不下去。如果有疑问我们继续讨论。

00分享举报

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值