可以声明行类型变量(标量数据类型的集合),并用它轻松地从表中获取单个行。
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;