繁体   English   中英

PostgreSQL:在plpgsql函数中访问RECORD类型的数据

[英]PostgreSQL: Accessing data of RECORD type in a plpgsql function

这是我的第一个功能:

CREATE  FUNCTION func1(INOUT a  integer,OUT b integer,  OUT c float, OUT   d integer,OUT e decimal)
 AS  $BODY$
DECLARE

BEGIN
.
.
.   
END
$BODY$
LANGUAGE plpgsql VOLATILE

输出为:

$ SELECT * FROM func1(242);

一个| b | c | d | Ë
-+-+-+-+ ---

242 | 5 | 7.5 | 15 | 1.2208

这是第二个功能:

CREATE  FUNCTION func2()
   AS  $BODY$
DECLARE
   d  RECORD;

BEGIN
    EXECUTE 'SELECT * FROM func1(242)' INTO d;  
    raise notice 'arr: %', d;.  -– output is->  NOTICE:  arr: (242,5,7.5,15,1.2208)
--HERE I want access to a,b,....
    .
    .   
END
$BODY$
LANGUAGE plpgsql VOLATILE

我如何才能分别访问func2中的a,b,c,d和e变量。

这是一种解决方案:

FOR d in EXECUTE 'SELECT * FROM func1(242)'
LOOP
  --here you can access them, or assign them to a local variable
  raise notice 'a:%, b:%, c:%, d:%, e:%', d.a, d.b, d.c, d.d, d.d, d.e;
END LOOP;

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM