2011-12-01 243 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 

這應該讓你返回你想要的任何信息。