WHENEVER 语句

使用 WHENEVER 语句来捕获在执行 SQL 语句期间发生的异常。WHENEVER 语句等同于在每个 SQL 语句之后放置一异常检查例程。

语法

元素 描述 限制 语法
label 当发生异常时程序控制传送到的语句标签 必须在同一源代码模块中存在。 特定于语言
routine 当发生异常时,要调用的用户定义的例程(UDR)的名称 无参数;在编译时刻 UDR 必须存在。 标识符

用法

重要: 仅随同 GBase 8s ESQL/C 使用此语句。
下表总结您可以 WHENEVER 语句检查的异常的类型。
异常的类型 WHENEVER 关键字 要获取更多信息
错误 SQLERROR 或 ERROR SQLERROR 关键字
警告 SQLWARNING 关键字  
Not Found 或 End of Data NOT FOUND 关键字  

当发生异常时,不使用 WHENEVER 语句的程序不会自动地异常终止。这样的程序必须显式地检查异常并采取它们的逻辑指定的任何更正活动。如果您不检查异常,则程序只是继续运行。然而,如果发生错误,则程序可能不会达到它想要达到的目的。

跟在 WHENEVER 之后的第一个关键字指定一些异常的条件的类型;该语句的最后一部分指定当遇到异常时采取的行动(或者不采取行动,如果指定 CONTINUE 的话)。下表总结 WHENEVER 可指定的可能的行动。
行动的类型 WHENEVER 关键字 要获取更多信息
继续程序执行 CONTINUE 关键字  
停止程序执行 STOP 关键字  
将控制传送到指定的标签 GOTO GO TO GOTO 关键字
将控制传送到 UDR CALL 子句  
1 GBase 8s 扩展