4

我正在尝试从 PostgreSQL 9.0 函数获取数据集,但无法使用存储过程。

这周我是 Postgres 的新手,所以让我解释一下我的术语:

在 pgAdmin III 中,我可以输入命令:

SELECT * FROM member;

并接收以下数据输出:

memberid   membername
1          Bill Smith
2          Joe Smith

我尝试创建许多函数(表 / SETOF / 等),非常类似于:

CREATE OR REPLACE FUNCTION get_all_members()
RETURNS SET OF member AS
'select * from member;'

当我在 pgAdmin 中运行它们(或从程序中调用它们)时,我得到以下信息:

SELECT get_all_members()

结果:

get_all_members
member
(1, "Bill Smith")
(2, "Joe Smith")

无论如何,我可以通过直接输入 SQL 命令从 FUNCTION(存储过程)中将其作为数据集获取。

非常感谢您的帮助!!!

4

1 回答 1

3

您可以通过稍微修改您的 select 语句来获得每列输出,如下所示:

SELECT * FROM get_all_members()

这将为您提供逐列输出,就像正常进行查询一样。

请参阅文档中的设置返回函数

于 2012-10-28T16:33:28.167 回答