postgresql函数-如何返回行的数据集
我正在尝试创建一个返回多行的postgresql函数。下面是代码的样子:postgresql函数-如何返回行的数据集,postgresql,stored-procedures,lua,Postgresql,Stored Procedures,Lua,我正在尝试创建一个返回多行的postgresql函数。下面是代码的样子: CREATE OR REPLACE FUNCTION getallwidgets() RETURNS SETOF widgets AS $BODY$ SELECT * FROM widgets; $BODY$ LANGUAGE sql VOLATILE COST 100 ROWS 1000; ALTER FUNCTION getallwidgets() OWNER TO postgres;
CREATE OR REPLACE FUNCTION getallwidgets()
RETURNS SETOF widgets AS
$BODY$
SELECT * FROM widgets;
$BODY$
LANGUAGE sql VOLATILE
COST 100
ROWS 1000;
ALTER FUNCTION getallwidgets()
OWNER TO postgres;
当我使用pgadmin3测试这段代码时,我得到一列数据,每个字段用逗号分隔。我想知道的是如何列出各个字段,这样当我在调用存储过程的代码中遍历数据集时,我可以按列名引用每个字段
谢谢
编辑1
在pgadmin3中,当我运行脚本时,在输出窗格中,我在一列中获得以下数据:
(1, "widget1","this is my description", 1)
(2, "another widget","description2", 3)
换句话说,我得到两行,上面的数据显示在一列中。
我期待着:
id name description user_id
1 "widget1" "this is my description" 1
2 "another widget" "description2" 3
您可以从输出中引用列名(如果您知道它们)。例如,如果小部件表中有名为col1、col2、col3的列,则可以发出:
SELECT col1, col2, col3
FROM getallwidgets();
这就是你想要的吗?你确定吗?我刚刚在我的数据库上测试了这段代码,我收到的实际上是单独的字段。你能从widgets表中提供你的输出和一些数据示例吗?cathulu,我已经更新了我的帖子。查看edit1