如何访问postgresql中的记录元素?
PostgreSQL v8.2(Greenplum) 这将返回如何访问postgresql中的记录元素?,postgresql,greenplum,Postgresql,Greenplum,PostgreSQL v8.2(Greenplum) 这将返回(2016-03-24,t)-如何分别提取这两个值 我可以通过从util.retrec()中选择p1、p2以交互方式完成但如何在一个过程中将这两个值赋给两个变量?我试过这个: SELECT util.retrec() INTO r1, r2; 运气不好,这会尝试将记录分配到r1 SELECT the_date, the_bool FROM util.retrec(); 只要列出字段及其名称,就可以了。以下是几种方法: do $$
(2016-03-24,t)
-如何分别提取这两个值
我可以通过从util.retrec()中选择p1、p2以交互方式完成代码>但如何在一个过程中将这两个值赋给两个变量?我试过这个:
SELECT util.retrec() INTO r1, r2;
运气不好,这会尝试将记录分配到r1
SELECT the_date, the_bool FROM util.retrec();
只要列出字段及其名称,就可以了。以下是几种方法:
do $$
declare
r1 date;
r2 boolean;
r record;
begin
r := retrec();
raise info '%', r;
raise info '%', r.p1;
raise info '%', r.p2;
select * into r from retrec();
raise info '%', r;
raise info '%', r.p1;
raise info '%', r.p2;
select * into r1, r2 from retrec();
raise info '%, %', r1, r2;
end; $$ language plpgsql;
注意,它是在PostgreSQL 9.5上测试的,这里有几个例子:select(retrec()).p1代码>从retrec()t中选择t.*、t.p1、t.p2代码>从retrec()中选择*代码>啊,我认为将函数别名为t是解决我问题的关键!谢谢
do $$
declare
r1 date;
r2 boolean;
r record;
begin
r := retrec();
raise info '%', r;
raise info '%', r.p1;
raise info '%', r.p2;
select * into r from retrec();
raise info '%', r;
raise info '%', r.p1;
raise info '%', r.p2;
select * into r1, r2 from retrec();
raise info '%, %', r1, r2;
end; $$ language plpgsql;