【发布时间】:2014-04-25 22:40:30
【问题描述】:
我在 Postgres 中有一个函数,它返回一组复合类型。返回时,我只能使用return next; 执行此操作,而无法使用return query 命令执行此操作,这是为什么呢?
CREATE TYPE return_type AS
(paramname character varying,
value character varying);
CREATE OR REPLACE FUNCTION test(i_param1 character varying, i_param2 character varying)
RETURNS SETOF return_type AS
--this works just fine returning two rows
r.paramname:='row1';
r.value:='myvalue1';
return next r;
r.paramname:='row1';
r.value:='myvalue1';
return next r;
return;
-- with this command I do not get a single row attached in the resultset
return query
select 'row1' as paraName,'myvalue1' as value
UNION ALL
select 'row2' as paraName,'myvalue2' as value;
return;
【问题讨论】:
标签: database function postgresql plpgsql