Postgres ma dedykowaną funkcję dokładnie do tego celu:array_fill()
:
Użyj go:
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;
Notatki
- Wymiary tablicy w
numeric[7][24]
to tylko dokumentacja. Podręcznik:
-
O operatorze przypisania w plpgsql:
:=
lub=
: -
Zasadniczo nie jest możliwe bezpośrednie zapisywanie do elementu tablicy. Możesz łączyć lub dołączać / dołączać elementy. Lub przypisz tablicę jako całość. Szczegóły w instrukcji. Ale takie stwierdzenie nie jest możliwe :
tarifas[%][%] = 0 -
Domyślna dolna granica tablicy to 1, a nie 0. Możesz jednak zdefiniować dowolny wymiar tablicy. Przykład:
SELECT '[2:3][2:4]={{7,7,7},{7,7,7}}'::int[]