PL SQL - 接受SQLCODE作为OUT参数被接受?

Tom*_*Tom 2 oracle plsql procedure out-parameters

我有一个返回OUT参数的过程.

procedure foo (in_v IN INTEGER, out_v OUT integer)
BEGIN
...
EXCEPTION
  WHEN OTHERS THEN
    --sh*t happend
    out_v := SQLCODE;
END
Run Code Online (Sandbox Code Playgroud)

如果一切正常,该参数将为0,如果发生丑陋,则该参数为<0.

现在,如果顺便发生sh*t,将抛出异常.

是否可以将SQLCODE值分配给OUT参数?或者这是一个代码味道,我将被驱逐出编程社区?

提前致谢.

Rol*_*man 11

如果没有额外的错误处理,我可能会建议反对它.这种方法只是让每个调用者都必须检查out参数的值.如果调用者忘记它,一个严重的问题可能会在最初被忽视并在其他地方创建一个难以调试的问题.

如果你根本就没有在这里找到OTHERS,那么你要确保调用者必须明确地捕获它,这样更容易调试.