2011-12-01 161 views
0

我有一个函数,它循环一个表并处理返回的值。我正在返回SETOF VARCHAR[]并返回RETURN NEXT the_varchar_array并且工作正常。从PostgreSQL函数返回值

但是现在我需要在VARCHAR[]之前返回一些INTEGER

如何定义返回值以返回INTEGER值和VARCHAR[]以及如何将它们返回到函数内?

如果定义为RETURNS SETOF INTEGER, INTEGER, INTERGER, VARCHAR[],则不起作用。

如果我使用RETURNS TABLE(a INTEGER, b INTEGER, c INTEGER, d VARCHAR[])的作品,但我不知道如何返回函数内部的每个值。

RETURN NEXT a,b,c,d不起作用。只有RETURN NEXT返回空行。

+0

[此开发文档(http://developer.postgresql.org/pgdocs/postgres/xfunc-sql.html)在PostgreSQL的显示从函数返回值的不同方式。您可能需要查看复合返回类型或包含所有值的一行数据。 –

+0

@Cory我使用了复合类型并解决了我的问题。请回答这个问题来选择你的答案。 –

+0

我将我的评论转换为答案。 –

回答

1

This development documentation在PostgreSQL中显示了从函数返回值的不同方法。您可能需要查看复合返回类型或包含所有值的一行数据。

注 - 注释转换为答案在OP的要求

1

尝试:

RETURNS SETOF record 

这应该让你返回你想要的任何信息。