Postgres har en dedikerad funktion för det ändamålet exakt: strong>array_fill()
:
Använd det:
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;
Anteckningar
- Arraydimensioner i
numeric[7][24]
är bara dokumentation. Manualen:
-
Om tilldelningsoperatorn i plpgsql:
:=
eller=
: -
Det är i allmänhet inte möjligt att skriva till ett arrayelement direkt. Du kan sammanfoga eller lägga till / lägga till element. Eller tilldela en array som helhet. Detaljer i manualen. Men ett påstående som detta är inte möjligt :
tarifas[%][%] = 0 -
Den nedre standardgränsen för en array är 1, inte 0. Men du kan definiera godtycklig arraydimension. Exempel:
SELECT '[2:3][2:4]={{7,7,7},{7,7,7}}'::int[]