postgresql 中的函数调用不返回结果集
Posted
技术标签:
【中文标题】postgresql 中的函数调用不返回结果集【英文标题】:Function call in postgresql returns no resultset 【发布时间】:2016-11-16 11:02:35 【问题描述】:我有一个类似的 postgresql 函数
create or replace function getalltypes(name character varying(100))
returns setof docs as $BODY$
begin
perform c.contenttypename from conttype c;
end;
$BODY$ LANGUAGE PLPGSQL;
docs 是我创建的一种类型
create type docs as (contenttypename character varying(100))
在
select getalltypes('')
没有结果显示。有人可以帮忙吗?
【问题讨论】:
您可能想将perform c.contenttypename from conttype c;
更改为return query c.contenttypename from conttype c;
?...
@VaoTsun - '从 conttype c 返回查询 c.contenttypename;'在“c”处显示错误。我改为'return query select c.contenttypename from conttype c;'然后它起作用了。谢谢
【参考方案1】:
您没有任何退货声明。这就是为什么你看不到结果。
PERFORM
is used to evaluate the query and DISCARD the result
这就是为什么您应该将perform c.contenttypename from conttype c;
更改为return query select c.contenttypename from conttype c;
之类的东西。
【讨论】:
以上是关于postgresql 中的函数调用不返回结果集的主要内容,如果未能解决你的问题,请参考以下文章