使用 WHENEVER 语句来捕获在执行 SQL 语句期间发生的异常。WHENEVER 语句等同于在每个 SQL 语句之后放置一异常检查例程。
元素 | 描述 | 限制 | 语法 |
---|---|---|---|
label | 当发生异常时程序控制传送到的语句标签 | 必须在同一源代码模块中存在。 | 特定于语言 |
routine | 当发生异常时,要调用的用户定义的例程(UDR)的名称 | 无参数;在编译时刻 UDR 必须存在。 | 标识符 |
异常的类型 | WHENEVER 关键字 | 要获取更多信息 |
---|---|---|
错误 | SQLERROR 或 ERROR | SQLERROR 关键字 |
警告 | SQLWARNING 关键字 | |
Not Found 或 End of Data | NOT FOUND 关键字 |
当发生异常时,不使用 WHENEVER 语句的程序不会自动地异常终止。这样的程序必须显式地检查异常并采取它们的逻辑指定的任何更正活动。如果您不检查异常,则程序只是继续运行。然而,如果发生错误,则程序可能不会达到它想要达到的目的。
行动的类型 | WHENEVER 关键字 | 要获取更多信息 |
---|---|---|
继续程序执行 | CONTINUE 关键字 | |
停止程序执行 | STOP 关键字 | |
将控制传送到指定的标签 | GOTO GO TO | GOTO 关键字 |
将控制传送到 UDR | CALL 子句 |