Sergio Fantinel wrote:
> I found how to use, inside a PL/pgSQL function, a two-dimensions array
> (matrix).
> There is a limitation: the number of the 'columns' of the matrix is
> fixed at declaration time (in DECLARE section) and you need to manually
> initialize all the elements in the first 'row' of the matrix.
You should use '{}' to initialize the array to empty. See below for an
example:
CREATE OR REPLACE FUNCTION testarray (integer, integer) RETURNS SETOF
integer[] AS'
DECLARE n alias for $1; -- number of rows is passed as argument i INTEGER; j integer; k alias for $2;
--matrix columns number a integer[];
begin for i in 1..n loop a := ''{}''; -- create empty array for j in 1..k loop a := a || i;
returnnext a; end loop; end loop; return;
end;
'LANGUAGE 'plpgsql';
regression=# select * from testarray(2,3); testarray
----------- {1} {1,1} {1,1,1} {2} {2,2} {2,2,2}
(6 rows)
HTH,
Joe