我正在尝试从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(存储过程)的数据集。
非常感谢您的帮助!!!
答案 0 :(得分:3)
您可以通过稍微修改select语句来获得每列输出,如下所示:
SELECT * FROM get_all_members()
这将为您提供逐列输出,就像正常执行查询一样。
请参阅文档中的set returning functions。