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 по дате отправления: