嵌套复合语句中的名称范围概述
嵌套复合语句可用于SQL程序或高级触发器中,以定义SQL变量声明、游标、条件名称和条件处理程序的范围。
此外,嵌套复合语句中的标签具有确定的含义。 然而,命名空间的规则以及如何引用非唯一名称,则因名称的类型而异。 下表总结了这些差异:
| 名称的类型 | 名字可以修饰 | 名字在 | 名称可在以下范围内引用 |
|---|---|---|---|
| SQL变量 | 是。 名称可以加上变量声明的复合语句标签 | 声明它的复合语句,不包括嵌套在该复合语句中的任何复合语句中的声明 | 声明该语句的复合语句,包括嵌套在该复合语句中的任何复合语句。 当多个SQL变量定义了相同的名称时,可以使用标签来明确引用特定变量,而该变量并非作用域中最局部的一个 |
| 条件名 | False | 声明它的复合语句,不包括嵌套在该复合语句中的任何复合语句中的声明 | 声明该语句的复合语句,包括嵌套在该复合语句中的任何复合语句。 条件名称可用于条件处理程序的声明,或用于SIGNAL或RESIGNAL语句。 如果多个条件定义了相同的名称,则无法明确引用范围最不局部的那一个条件。 |
| 游标名称 | False | 常规 | 声明该语句的复合语句,包括嵌套在该复合语句中的任何复合语句。 如果将光标定义为结果集光标,则调用应用程序可以访问结果集。 |
| 标签 | False | 定义标签的复合语句,包括嵌套在该复合语句中的复合语句中的任何定义 | 定义该语句的复合语句,包括嵌套在该复合语句中的任何复合语句。 使用标签来限定SQL变量的名称,或作为GOTO、LEAVE或ITERATE语句的目标,但须遵守这些语句的规则。 |