Re: PL/pgSQL multidimension (matrix) array in function
| От | Joe Conway |
|---|---|
| Тема | Re: PL/pgSQL multidimension (matrix) array in function |
| Дата | |
| Msg-id | 414FB192.5060100@joeconway.com обсуждение исходный текст |
| Ответ на | PL/pgSQL multidimension (matrix) array in function (Sergio Fantinel <sergio.fantinel@lnl.infn.it>) |
| Список | pgsql-sql |
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
В списке pgsql-sql по дате отправления: