当发生指定类型的异常时,使用 CALL 子句来将程序控制传送到指定的 UDR。请不要在 UDR 名称之后包括圆括号。如果程序检测到错误,则下列 WHENEVER 语句导致程序调用
error_recovery() 函数:
EXEC SQL WHENEVER SQLERROR CALL error_recovery;
当 UDR 返回时,在正导致该错误的行之后的下一语句处恢复执行。当发生错误时,如果您想要终止执行,包括终止该程序作为指定的 UDR 的一部分的语句。
请观察指定的例程上的下列限制:
- UDR 不可接受参数,也不可返回值。如果它需要外部的信息,请使用全局变量或 WHENEVER ... GOTO 选项来将程序控制传送到调用该 UDR 的标签。
- 您不可在 CALL 子句中指定 SPL 例程的名称。要调用 SPL 例程,请使用 CALL 子句来调用包含 EXECUTE FUNCTION(或 EXECUTE PROCEDURE)语句的
UDR。
- 请确保在 WHENEVER ... CALL 语句的作用域内的所有函数都可发现指定的函数的声明。