Postgres 函数,获取“查询没有结果数据的目的地”,不想使用表结果类型
Posted
技术标签:
【中文标题】Postgres 函数,获取“查询没有结果数据的目的地”,不想使用表结果类型【英文标题】:Postgres function, getting "query has no destination for result data", don't want to use table result type 【发布时间】:2015-12-01 09:40:21 【问题描述】:我正在编写一个简单的 postgres 函数。这个函数的结果应该是“事件”表的一行。我有以下内容:
create or replace function featured_event() returns setof events as
$$
begin
select events.* from events where featured is true;
end
$$ LANGUAGE plpgsql;
我不想对列进行硬编码,而是使用现有表中的结构作为返回类型。
这不是与Function with SQL query has no destination for result data 重复,因为我不想使用table
结果类型。
【问题讨论】:
【参考方案1】:使用SQL函数:
create or replace function featured_event() returns setof events as
$$
select events.* from events where featured is true;
$$ LANGUAGE sql;
在 plpgsql 中你应该使用return query
:
create or replace function featured_event_plpgsql() returns setof events as
$$
begin
return query select events.* from events where featured is true;
end;
$$ LANGUAGE plpgsql;
【讨论】:
return query
是我所需要的。谢谢!以上是关于Postgres 函数,获取“查询没有结果数据的目的地”,不想使用表结果类型的主要内容,如果未能解决你的问题,请参考以下文章
如何从 pg_catalog.pg_proc 获取 Postgres 函数名称以及函数特定名称?
无法使用 Postgres 存储函数获取 ID - int 类型的值错误
如何在 jpa 查询中调用 postgres position() 函数