您好,我是小DAI,专注于数据库管理员相关的技术问答,请问有什么可以帮您?

行类型变量

可以声明行类型变量(标量数据类型的集合),并用它轻松地从表中获取单个行。

语法

DECLARE  [ {,  }… ] [ CONSTANT ] ROW {  |  } [ { DEFAULT | ‘=’ }  ] ;

语法元素

 ::= ‘(‘  [ { ,  }… ] ‘)’

::=

::= LIKE { | }

::= [ ‘.’]

::= ‘:’

::= |

::= ROW ‘(‘ [ { , }… ] ‘)’

将值分配给行类型变量

要向行类型变量或行类型变量的引用值赋值,请执行以下操作:

DO BEGIN

DECLARE x, y ROW (a INT, b VARCHAR(16), c TIMESTAMP);

x = ROW(1, 'a', '2000-01-01');

x.a = 2;

y = :x;

SELECT :y.a, :y.b, :y.c FROM DUMMY;

-- Returns [2, 'a', '2000-01-01']

END;

将值选择到行类型变量中

可以将多个值提取或选择到 单个 行类型变量中。

DO BEGIN

DECLARE CURSOR cur FOR SELECT 1 as a, 'a' as b, to_timestamp('2000-01-01') as c FROM DUMMY;

DECLARE x ROW LIKE :cur;

OPEN cur;

FETCH cur INTO x;

SELECT :x.a, :x.b, :x.c FROM DUMMY;

-- Returns [1, 'a', '2000-01-01']

SELECT 2, 'b', '2000-02-02' INTO x FROM DUMMY;

SELECT :x.a, :x.b, :x.c FROM DUMMY;

-- Returns [2, 'b', '2000-02-02']

END;

限制

  • 不支持 EXEC INTO。

  • 无法将行类型变量作为过程或函数的参数传递。