暂无图片
暂无图片
暂无图片
暂无图片
暂无图片

Oracle PL/SQL过程-捕获 “ORA-01013-用户请求取消当前操作”

askTom 2018-06-18
1420

问题描述

这可能是一个愚蠢的问题,但我想知道是否有任何方法可以在PL/SQL过程中捕获此错误 “ORA-01013用户请求取消当前操作”。

我的要求是在过程终止时退出之前更新数据库记录

1.用户按下了一个控制C或一些这样的显式中断命令,引发ORA-01013或
2.再次出现超时导致ORA-01013



要进一步解释这可能有帮助的确切情况,如下所示:-

假设我正在执行一系列DB查询,并在查询执行完成时将状态更新为完成。现在,当遇到上述错误时,我想在完成之前更新查询的状态为 “中止”。正常的PL/SQL异常不允许我这样做,因为它现在出现了。


显然,这看起来是不可能的,但我正在寻找任何聪明的方法来做到这一点,如果有可能的话。


谢谢
Arnab Panja

专家解答

否。如MOS note 12838063.8状态,错误12838063修复了错误,您可以捕获此异常!

PL/SQL exception handlers can catch errors like ORA-3113 or ORA-1013
which should not be trappable by an exception handler. This can lead
to follow on errors, such as ORA-7445 or similar due to incorrect
session state after the error.


所以如果你想陷阱,你需要在客户端程序中做到这一点。
「喜欢这篇文章,您的关注和赞赏是给作者最好的鼓励」
关注作者
【版权声明】本文为墨天轮用户原创内容,转载时必须标注文章的来源(墨天轮),文章链接,文章作者等基本信息,否则作者和墨天轮有权追究责任。如果您发现墨天轮中有涉嫌抄袭或者侵权的内容,欢迎发送邮件至:contact@modb.pro进行举报,并提供相关证据,一经查实,墨天轮将立刻删除相关内容。

评论