【发布时间】:2020-08-21 18:40:47
【问题描述】:
我想创建一个在其中调用存储过程的存储过程。 如果其中一个失败,我想阻止它执行任何后续的过程。现在,如果第一个过程失败,它仍然在执行过程 2 和 3。我怎样才能让它停止这样做?
create or replace PROCEDURE run_three_procedures AS
BEGIN
Package.procedure1;
Package.procedure2;
Package.procedure3;
EXCEPTION
WHEN OTHERS THEN
ROLLBACK;
END run_three_procedures;
【问题讨论】:
-
您描述的当前行为不正常。如果
procedure1抛出异常,那应该会导致整个过程立即结束。各个过程是否有阻止异常传播给调用者的 EXCEPTION 子句? -
@davecosta 每个过程都说“当其他人出现异常”并将错误信息插入日志表中。所以当我运行上面的过程时,它说过程 1 失败,过程 2 和 3 完成
标签: oracle exception stored-procedures oracle-sqldeveloper procedure