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】:

您没有任何退货声明。这就是为什么你看不到结果。 PERFORMis used to evaluate the query and DISCARD the result 这就是为什么您应该将perform c.contenttypename from conttype c; 更改为return query select c.contenttypename from conttype c; 之类的东西。

【讨论】:

以上是关于postgresql 中的函数调用不返回结果集的主要内容,如果未能解决你的问题,请参考以下文章

来自 PostgreSQL 函数的多个 JDBC 结果集

PostgreSQL 调用函数返回带有表和附加列的记录集

PostgreSQl 函数返回多个动态结果集

PostgreSQL函数如何返回数据集 [转]

如何在 PostgreSQL 中的函数内返回 SELECT 的结果?

在 Java 中调用 Oracle PL/SQL 中的过程或函数。返回结果集 false