锚定位数据类型的功能

锚点类型根据另一 SQL 对象(如列、全局变量、SQL 变量、SQL 参数或者表或视图的行)定义数据类型。

使用锚点类型定义进行定义的数据类型仍然依赖于它定位至的对象。锚点对象的数据类型中的任何更改将影响锚定位数据类型。如果定位至表或视图的行,那么锚定位数据类型为 ROW,其字段由锚点表或锚点视图的列定义。

声明变量时,如果要求变量与另一对象(例如,表中某列)的数据类型相同但您不知道确切数据类型,那么此数据类型很有用。

锚定位数据类型可以与下列其中一项的类型相同:
  • 表中某行
  • 视图中某行
  • 游标变量行定义
  • 表中某列
  • 视图中某列
  • 局部变量,包括局部游标变量或行变量
  • 全局变量
仅当声明或创建下列其中一项时,才能指定锚定位数据类型:
  • SQL 过程中的局部变量,包括行变量
  • 编译型 SQL 函数中的局部变量,包括行变量
  • 例程参数
  • 使用 CREATE TYPE 语句的用户定义游标数据类型。
    • 不能在 DECLARE CURSOR 语句中对其进行引用。
  • 函数返回数据类型
  • 全局变量
要定义锚定位数据类型,请指定 ANCHOR DATA TYPE TO 子句(或更短格式的 ANCHOR 子句)来指定将要成为的数据类型。如果锚定位数据类型是行数据类型,那么必须指定 ANCHOR ROW OF 子句或其同义词之一。这些子句在以下语句中受支持:
  • DECLARE
  • CREATE TYPE
  • CREATE VARIABLE
    • 在此版本中,只能将全局变量定位至其他全局变量、表中某列或视图中某列。