SQL 过程语句
SQL 控制语句可能允许在 SQL 控制语句中指定多个 SQL 语句。 这些语句定义为 SQL 过程语句。
注:
- 仅在 SQL 过程中允许使用 COMMIT , ROLLBACK , CONNECT , DISCONNECT , SET CONNECTION 或 SET RESULT SETS 语句。
- SQL-routine-body中不允许使用带有 REPLACE 关键字的 ALTER PROCEDURE (SQL) , ALTER FUNCTION (SQL 标量) 或 ALTER FUNCTION (SQL 表) 语句。
- 仅允许在 SQL 函数或触发器中使用 SET TRANSACTION 语句。
- 仅允许在触发器中使用 SET 转换-variable-statement 。 还可以在触发器中指定 fullselect 和 VALUES-statement 。
注意
注释: 注释可以包含在 SQL 过程的主体中。 除了双短划线形式的注释 (--) 外,注释可以以/* 开头,以 */ 结尾。 以下规则适用于 此格式的注释。
- 开始字符/* 必须相邻且在同一行上。
- 结束字符 */ 必须相邻且在同一行上。
- 可以在空间有效的情况下启动注释。
- 注释可以继续到下一行。
检测和处理错误及警告条件: 执行 SQL 语句时,数据库管理器会将有关语句处理的信息存储在诊断区域 (包括 SQLSTATE 和 SQLCODE) 中,除非 SQL 语句的描述中另有说明。 完成条件指示 SQL 语句已成功完成,已完成 (带有警告条件) 或已完成 (带有未找到的条件)。 异常条件指示 SQL 语句未成功。
可以在复合语句中定义条件处理程序,以在发生异常条件,警告条件或找不到条件时执行。 条件处理程序的声明包含激活条件处理程序时要执行的代码。 当在 SQL-procedure-statement的处理中发生除成功完成以外的条件时,如果可以处理该条件的条件处理程序在作用域内,那么将激活一个这样的条件处理程序来处理该条件。 有关定义条件处理程序的信息,请参阅 复合语句 。 条件处理程序中的代码可以检查是否存在警告条件,未找到条件或异常条件,并执行相应的操作。 在条件处理程序主体的开头使用下列其中一种方法来检查诊断区域中导致该处理程序被激活的条件:
- 发出 GET DIAGNOSTICS 语句以请求条件信息。 请参阅 GET DIAGNOSTICS 语句。
- 测试 SQL 变量 SQLSTATE 和 SQLCODE。
如果条件是警告,并且没有条件的处理程序,那么也可以在条件处理程序的主体外部使用上述两种方法,紧跟在需要条件的语句之后。 如果条件是错误,并且没有条件的处理程序,那么例程或触发器将随错误条件一起终止。
