Postgres hat genau für diesen Zweck eine spezielle Funktion:array_fill()
:
Verwenden Sie es:
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;
Notizen
- Array-Dimensionen in
numeric[7][24]
sind nur Dokumentation. Das Handbuch:
-
Über den Zuweisungsoperator in plpgsql:
:=
oder=
: -
Es ist im Allgemeinen nicht möglich, direkt auf ein Array-Element zu schreiben. Sie können Elemente verketten oder anhängen / voranstellen. Oder weisen Sie ein Array als Ganzes zu. Details im Handbuch. Aber so eine Aussage ist nicht möglich :
tarifas[%][%] = 0 -
Die standardmäßige Untergrenze eines Arrays ist 1, nicht 0. Sie können jedoch eine beliebige Array-Dimension definieren. Beispiel:
SELECT '[2:3][2:4]={{7,7,7},{7,7,7}}'::int[]