SQL 过程语句

SQL 控制语句可能允许在 SQL 控制语句中指定多个 SQL 语句。 这些语句定义为 SQL 过程语句。

语法
读取语法图跳过可视语法图SQL-control-语句ALLOCATE CURSOR-语句ALLOCATE DESCRIPTOR-语句ALTER FUNCTION-语句(2)ALTER MASK-语句ALTER PERMISSION-语句ALTER PROCEDURE-语句(2)ALTER SEQUENCE-语句ALTER TABLE-语句ALTER TRIGGER-语句关联定位器-语句CLOSE-语句COMMENT-语句COMMIT-语句(1)CONNECT-语句(1)CREATE ALIAS-语句CREATE FUNCTION (外部标量)-语句CREATE FUNCTION (外部表)-语句CREATE FUNCTION (有源)-语句CREATE INDEX-语句CREATE MASK-语句CREATE PERMISSION-语句CREATE PROCEDURE (外部)-语句CREATE SCHEMA-语句CREATE SEQUENCE-语句CREATE TABLE-语句CREATE TYPE-语句CREATE VIEW-语句DEALLOCATE DESCRIPTOR-语句DECLARE GLOBAL TEMPORARY TABLE-语句DELETE-statementDESCRIBE-语句DESCRIBE CURSOR-语句DESCRIBE INPUT-语句DESCRIBE PROCEDURE-语句DESCRIBE TABLE-语句DISCONNECT-语句(1)DROP-语句
语法 (续)
读取语法图跳过可视语法图EXECUTE-语句EXECUTE IMMEDIATE-语句FETCH-语句GET DESCRIPTOR-语句GRANT-语句INCLUDE-语句INSERT-statementLABEL-语句LOCK TABLE-语句MERGE-statementOPEN-语句PREPARE-语句REFRESH TABLE-语句RELEASE-语句RELEASE SAVEPOINT-语句RENAME-语句REVOKE-语句ROLLBACK-语句(1)SAVEPOINT-语句SELECT INTO-语句SET CONNECTION-语句(1)SET CURRENT DEBUG MODE-语句SET CURRENT DECFLOAT 舍入方式-语句SET CURRENT DEGREE-语句SET CURRENT IMPLICIT XMLPARSE OPTION-语句SET CURRENT TEMPORAL SYSTEM_TIME-语句SET DESCRIPTOR-语句SET ENCRYPTION PASSWORD-语句SET PATH-语句SET RESULT SETS-语句(1)SET SCHEMA-语句SET TRANSACTION-语句(3)SET 转换-variable-statement(4)TRANSFER OWNERSHIP-语句TRUNCATE-语句UPDATE-statementVALUES INTO-语句
注:
  1. 仅在 SQL 过程中允许使用 COMMIT , ROLLBACK , CONNECT , DISCONNECT , SET CONNECTION 或 SET RESULT SETS 语句。
  2. SQL-routine-body中不允许使用带有 REPLACE 关键字的 ALTER PROCEDURE (SQL) , ALTER FUNCTION (SQL 标量) 或 ALTER FUNCTION (SQL 表) 语句。
  3. 仅允许在 SQL 函数或触发器中使用 SET TRANSACTION 语句。
  4. 仅允许在触发器中使用 SET 转换-variable-statement 。 还可以在触发器中指定 fullselectVALUES-statement

注意

注释: 注释可以包含在 SQL 过程的主体中。 除了双短划线形式的注释 (--) 外,注释可以以/* 开头,以 */ 结尾。 以下规则适用于 此格式的注释

  • 开始字符/* 必须相邻且在同一行上。
  • 结束字符 */ 必须相邻且在同一行上。
  • 可以在空间有效的情况下启动注释。
  • 注释可以继续到下一行。

检测和处理错误及警告条件: 执行 SQL 语句时,数据库管理器会将有关语句处理的信息存储在诊断区域 (包括 SQLSTATE 和 SQLCODE) 中,除非 SQL 语句的描述中另有说明。 完成条件指示 SQL 语句已成功完成,已完成 (带有警告条件) 或已完成 (带有未找到的条件)。 异常条件指示 SQL 语句未成功。

可以在复合语句中定义条件处理程序,以在发生异常条件,警告条件或找不到条件时执行。 条件处理程序的声明包含激活条件处理程序时要执行的代码。 当在 SQL-procedure-statement的处理中发生除成功完成以外的条件时,如果可以处理该条件的条件处理程序在作用域内,那么将激活一个这样的条件处理程序来处理该条件。 有关定义条件处理程序的信息,请参阅 复合语句 。 条件处理程序中的代码可以检查是否存在警告条件,未找到条件或异常条件,并执行相应的操作。 在条件处理程序主体的开头使用下列其中一种方法来检查诊断区域中导致该处理程序被激活的条件:
  • 发出 GET DIAGNOSTICS 语句以请求条件信息。 请参阅 GET DIAGNOSTICS 语句
  • 测试 SQL 变量 SQLSTATE 和 SQLCODE。

如果条件是警告,并且没有条件的处理程序,那么也可以在条件处理程序的主体外部使用上述两种方法,紧跟在需要条件的语句之后。 如果条件是错误,并且没有条件的处理程序,那么例程或触发器将随错误条件一起终止。