一个游标循环遍历中,异常如何处理?
create or replace procedure c1
is
cursor c1 is select cid,.... from tb where .....;
begin
open c1
loop c1 into v_id,......
update tb1 set column1=v_c1,...... where id=v_id ......
commit;
end loop;
exception
when others then
--异常如何处理,v_id为主键id
insert into tb_expo(eid,......)values(v_id,.....)
rollback;
end
--这里如果update失败了,如何处理,我的目的是在异常处理的时候记录下v_id,
--然后回滚这个update操作,然后继续遍历剩下的游标记录,这个思路如何实现?相关推荐
PL/SQL编程
pl/sql编程基础,适合初学oracle数据库plsql编程者,也可作为工具文档
PLSQL_NEW编程讲义
ORACLE 8i PL/SQL程序设计 适合入门学习存储过程
Oracle 遍历游标的四种方式汇总(for、fetch、while、BULK COLLECT)
1.情景展示 Oracle 遍历游标的四种方式(for、fetch、while、bulk collect+forall) 2.问题分析 我们可以把游标想象成一张表,想要遍历游标,就要取到游标的每行数据,所以问题的关键就成了:如何取到行数据? 3.解决方案 方式一:FOR 循环(推荐使用) 变形一:遍历显式游标 /* 如果是在存储过程外使用显式游标,需要使用DECLARE关键字 */ DECLARE /*创建游标*/ CURSOR CUR_FIRST_INDEX IS SELECT A.ID A_ID, --一级指标ID A.
sql 游标的使用—游标FOR循环小例子
游标for循环是在pl/sql块中使用游标最简单的方式,它简化了对游标的处理。当使用游标for循环时,oracle会隐含的打开游标,提取游标数据并关闭游标。
Oracle显示游标的使用及游标for循环
下面给大家介绍在什么情况下用隐式游标,什么情况下用显示游标: 1.查询返回单行记录时→隐式游标; 2.查询返回多行记录并逐行进行处理时→显式游标 –显示游标属性 declare CURSOR cur_emp IS SELECT * FROM emp; row_emp cur_emp%ROWTYPE; BEGIN OPEN cur_emp; FETCH cur_emp INTO row_emp; WHILE cur_emp%FOUND LOOP dbms_output.put_line(row_emp.empno||'----'||row_emp.ename); FETCH cur_emp


