【发布时间】:2014-11-04 03:49:29
【问题描述】:
假设我正在从另一个过程调用一个 plsql 过程(都在同一个包中定义)
当出现问题时,我试图从 proc1 引发一个应用程序错误以显示在 c# 程序上(proc1 将是入口调用)。当 proc1 中发生异常时,它很简单。但是如何传播在 proc2 中引发的相同错误?
我是否也必须在 proc1 中声明相同的 user_exception EXCEPTION?或者 我应该在包级别有一个全局异常变量吗?标准做法是什么? (请忽略任何代码错误,例如 exception_init 等。)我只包含了这个概念的代码..
create or replace procedure proc1 is
begin
--some plsqlcode
proc2();
exception
raise_application_error( ???? );
end proc1;
create or replace procedure proc2 is
user_exception EXCEPTION;
begin
--do something
if (somefalse condition) then
raise user_exception
exception
when user_exception then
--do some error handling
raise;
end proc2;
我希望我清楚地提出了这个问题。提前感谢您的建议/提示。
【问题讨论】: