声明 CONDITION 变量允许您命名 SQL 错误代码,甚至定义用户定义的条件。
DECLARE CONDITION [ FOR SQL_ERROR_CODE ]; 这些变量可用于 EXIT HANDLER 声明以及 SIGNAL 和 RESIGNAL 语句中。RESIGNAL 和 SIGNAL 中仅允许用户定义的条件。
对 SQL 错误代码使用条件变量可使过程/函数代码更加易读。例如,您可以为其声明有意义的条件,而不是使用指示除数为零的 SQL 错误代码 304:
DECLARE division_by_zero CONDITION FOR SQL_ERROR_CODE 304;然后,相应的 EXIT HANDLER 将如下所示:
DECLARE EXIT HANDLER FOR division_by_zero
SELECT ::SQL_ERROR_CODE, ::SQL_ERROR_MESSAGE FROM DUMMY;
除了为现有 SQL 错误代码声明条件外,您还可以声明用户定义的条件。使用或不使用用户定义的错误代码进行定义。
考虑到对于无效的过程输入,您需要用户定义的条件,您必须按照以下示例进行声明:
DECLARE invalid_input CONDITION;或者,您还可以关联用户定义的错误代码,例如 10000:
DECLARE invalid_input CONDITION FOR SQL_ERROR_CODE 10000;备注请注意,用户定义的错误代码必须在 10000 到 19999 的范围内。
将如何在 SIGNAL 和 RESIGNAL 部分处理对用户定义的条件发出信号和/或重新发出信号。