嵌套复合语句中的名称范围概述

更改开始嵌套复合语句可用于SQL程序或高级触发器中,以定义SQL变量声明、游标、条件名称和条件处理程序的范围。更改结束

此外,嵌套复合语句中的标签具有确定的含义。 然而,命名空间的规则以及如何引用非唯一名称,则因名称的类型而异。 下表总结了这些差异:
表 1. 嵌套复合语句中名称的范围和限定
名称的类型 名字可以修饰 名字在 名称可在以下范围内引用
SQL变量 是。 名称可以加上变量声明的复合语句标签 声明它的复合语句,不包括嵌套在该复合语句中的任何复合语句中的声明 声明该语句的复合语句,包括嵌套在该复合语句中的任何复合语句。

当多个SQL变量定义了相同的名称时,可以使用标签来明确引用特定变量,而该变量并非作用域中最局部的一个

条件名 False 声明它的复合语句,不包括嵌套在该复合语句中的任何复合语句中的声明 声明该语句的复合语句,包括嵌套在该复合语句中的任何复合语句。

条件名称可用于条件处理程序的声明,或用于SIGNAL或RESIGNAL语句。

如果多个条件定义了相同的名称,则无法明确引用范围最不局部的那一个条件。

游标名称 False 常规 声明该语句的复合语句,包括嵌套在该复合语句中的任何复合语句。

如果将光标定义为结果集光标,则调用应用程序可以访问结果集。

标签 False 定义标签的复合语句,包括嵌套在该复合语句中的复合语句中的任何定义 定义该语句的复合语句,包括嵌套在该复合语句中的任何复合语句。

使用标签来限定SQL变量的名称,或作为GOTO、LEAVE或ITERATE语句的目标,但须遵守这些语句的规则。