oracle – 当用户打消措施ORA-01013时呈现非常
|
我们有一个处理赏罚数据库中大量记录的进程.此刻偶然假如措施耗费的时刻过长,则用户手动打消该措施,从而抛出ORA-01013 EXCEPTION.可是,我们如故想知道在打消措施之前处理赏罚了几多记录.
知道怎样获取在打消措施之前处理赏罚的记录的计数?每次提交时我都可以实行增进记录可是想知道是否有更好的要领来实现这一点 办理要领您可以在 autonomous transaction中记录进度.即,通过AT将处理赏罚后的行记录在单独的事宜(具有本身的提交)中的日记表中,譬喻: CREATE OR REPLACE
PROCEDURE log_progress (
p_id IN NUMBER,p_data IN VARCHAR2
)
AS
PRAGMA AUTONOMOUS_TRANSACTION;
BEGIN
INSERT INTO log_table
(
id,logging_data
)
VALUES
(
p_id,p_data
);
--
COMMIT;
EXCEPTION
WHEN others
THEN
-- Log the error here
...
-- Re-raise if needed
RAISE;
END;
假如历程被打消,那么您可以查询AT记录的数据,并查找已处理赏罚的行数,由于日记表中的记录插入不会被“主”事宜回滚. 另一种要领是行使UTL_FILE包写入日记文件,然后在打消事宜时读取文件的内容. 趁便说一句,您可以将(险些全部)您想要的代码放入非常部门,假如激发该非常,它将被执行.必需有另一个缘故起因导致您的代码未被运行或被导致非常激发的事宜回滚. http://www.exforsys.com/tutorials/oracle-11g/oracle-11g-exception-handling.html 但愿能辅佐到你… (编辑:湖南网) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |

