0

我正在尝试创建一个返回多行的 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 中,当我运行脚本时,在输出窗格中,我在 ONE 列中获得以下数据:

(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
4

1 回答 1

0

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

SELECT col1, col2, col3
FROM getallwidgets();

这就是你所追求的吗?

于 2013-07-05T14:55:49.723 回答