锚定位数据类型的功能
锚点类型根据另一 SQL 对象(如列、全局变量、SQL 变量、SQL 参数或者表或视图的行)定义数据类型。
使用锚点类型定义进行定义的数据类型仍然依赖于它定位至的对象。锚点对象的数据类型中的任何更改将影响锚定位数据类型。如果定位至表或视图的行,那么锚定位数据类型为 ROW,其字段由锚点表或锚点视图的列定义。
声明变量时,如果要求变量与另一对象(例如,表中某列)的数据类型相同但您不知道确切数据类型,那么此数据类型很有用。
锚定位数据类型可以与下列其中一项的类型相同:
- 表中某行
- 视图中某行
- 游标变量行定义
- 表中某列
- 视图中某列
- 局部变量,包括局部游标变量或行变量
- 全局变量
仅当声明或创建下列其中一项时,才能指定锚定位数据类型:
- SQL 过程中的局部变量,包括行变量
- 编译型 SQL 函数中的局部变量,包括行变量
- 例程参数
- 使用 CREATE TYPE 语句的用户定义游标数据类型。
- 不能在 DECLARE CURSOR 语句中对其进行引用。
- 函数返回数据类型
- 全局变量
要定义锚定位数据类型,请指定 ANCHOR DATA TYPE TO
子句(或更短格式的 ANCHOR 子句)来指定将要成为的数据类型。如果锚定位数据类型是行数据类型,那么必须指定 ANCHOR ROW OF 子句或其同义词之一。这些子句在以下语句中受支持:
- DECLARE
- CREATE TYPE
- CREATE VARIABLE
- 在此版本中,只能将全局变量定位至其他全局变量、表中某列或视图中某列。