如何从PostgreSQL 9.0函数中获取数据集(“存储过程”)

时间:2012-10-28 16:24:24

标签: postgresql stored-procedures dataset

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

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

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

SELECT * FROM member;

并收到以下数据输出:

memberid   membername
1          Bill Smith
2          Joe Smith

我尝试创建许多函数(tables / SETOF / etc)非常像:

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(存储过程)的数据集。

非常感谢您的帮助!!!

1 个答案:

答案 0 :(得分:3)

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

SELECT * FROM get_all_members()

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

请参阅文档中的set returning functions