Database Reference
In-Depth Information
Returning records
If multiple rows of data are needed to be returned, a similar function returning a set
is achieved by adding RETURNS SETOF RECORD . This technique can only be used
with functions using INOUT or OUT arguments.
CREATE FUNCTION permutations(INOUT a int,
INOUT b int,
INOUT c int)
RETURNS SETOF RECORD
AS $$
BEGIN
RETURN NEXT;
SELECT b,c INTO c,b; RETURN NEXT;
SELECT a,b INTO b,a; RETURN NEXT;
SELECT b,c INTO c,b; RETURN NEXT;
SELECT a,b INTO b,a; RETURN NEXT;
SELECT b,c INTO c,b; RETURN NEXT;
END;
$$ LANGUAGE plpgsql;
Running the permutations function returns the six rows we would expect:
hannu=# SELECT * FROM permutations(1, 2, 3);
-[ RECORD 1 ]
a | 1
b | 2
c | 3
-[ RECORD 2 ]
a | 1
b | 3
c | 2
-[ RECORD 3 ]
a | 3
b | 1
c | 2
Search WWH ::




Custom Search