Postgres ha esattamente una funzione dedicata a questo scopo:array_fill()
:
Usalo:
CREATE OR REPLACE FUNCTION teste()
RETURNS void AS
$func$
DECLARE
tarifas numeric[7][24] := array_fill(0, ARRAY[7,24]);
a int;
b int;
BEGIN
-- do something
END
$func$ LANGUAGE plpgsql;
Note
- Dimensioni dell'array in
numeric[7][24]
sono solo documentazione Il manuale:
-
Informazioni sull'operatore di assegnazione in plpgsql:
:=
o=
: -
In genere non è possibile scrivere direttamente su un elemento dell'array. Puoi concatenare o aggiungere / anteporre elementi. Oppure assegnare un array nel suo insieme. Dettagli nel manuale. Ma un'affermazione come questa non è possibile :
tarifas[%][%] = 0 -
Il limite inferiore predefinito di una matrice è 1, non 0. Ma è possibile definire una dimensione della matrice arbitraria. Esempio:
SELECT '[2:3][2:4]={{7,7,7},{7,7,7}}'::int[]