Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/postgresql/9.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
如何访问postgresql中的记录元素?_Postgresql_Greenplum - Fatal编程技术网

如何访问postgresql中的记录元素?

如何访问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 $$

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 $$
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;