postgresql函数 - 如何返回行的数据集

时间:2013-07-05 14:50:34

标签: 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;

当我使用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

1 个答案:

答案 0 :(得分:0)

您可以从输出中引用列名(如果您知道的话)。例如,如果您的窗口小部件表中有名为col1,col2,col3的列,则可以发出:

SELECT col1, col2, col3
FROM getallwidgets();

这就是你要追求的吗?