plsql / cursors处理异常并返回执行流程
发布时间:2020-12-12 13:08:22 所属栏目:百科 来源:网络整理
导读:我试图执行一个游标,并希望它完成循环,即使有一些异常. 我想要做的是“捕获”所有异常,并且可能记录某些事情或什么也不做,然后返回流程.以下是代码的外观: FOR line IN my_cursor LOOP begin ifcondition then GOTO pass; else do_something exception when
我试图执行一个游标,并希望它完成循环,即使有一些异常.
我想要做的是“捕获”所有异常,并且可能记录某些事情或什么也不做,然后返回流程.以下是代码的外观: FOR line IN my_cursor LOOP begin if<condition> then GOTO pass; else <<do_something>> exception when others then sys.dbms_output.put_line('say something'); end if; <<pass>> null; end END LOOP; 脚本没有编译. p.s:DB为10g,并且没有CONTINUE.因此使用GOTO. 将您想要在循环中执行的代码放在它自己的块中,然后您可以使用该块异常部分来处理循环迭代期间的任何问题.一旦处理了该迭代的异常,就会开始下一个循环迭代 例如.: for line in my_cursor loop begin <<do_something>> exception <<do_exception_processing>> end; end loop; 为了进一步说明这一点,在下面的例子中,我声明了一个异常类型的局部变量.我循环遍历数字1到10,在第二次循环迭代期间,if语句为true,处理传递给异常处理程序.处理完异常后,循环的下一次迭代开始. begin for i in 1 .. 10 loop declare my_exception exception; begin if i = 2 then -- if you need to do some processing then you would enter it -- here and then when you want to enter the exception section -- you would add the line below raise my_exception; end if; exception when my_exception then dbms_output.put_line('in exception section'); end; end loop; end; (编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |