Postgres heeft precies een speciale functie voor dat doel:array_fill()
:
Gebruik het:
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;
Opmerkingen
- Array-dimensies in
numeric[7][24]
zijn slechts documentatie. De handleiding:
-
Over de toewijzingsoperator in plpgsql:
:=
of=
: -
Het is over het algemeen niet mogelijk om rechtstreeks naar een array-element te schrijven. U kunt elementen samenvoegen of toevoegen / toevoegen. Of wijs een array als geheel toe. Details in de handleiding. Maar een uitspraak als deze is niet mogelijk :
tarifas[%][%] = 0 -
De standaard ondergrens van een array is 1, niet 0. Maar u kunt een willekeurige arraydimensie definiëren. Voorbeeld:
SELECT '[2:3][2:4]={{7,7,7},{7,7,7}}'::int[]