Postgres memiliki fungsi khusus untuk tujuan itu persis:array_fill()
:
Gunakan:
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;
Catatan
- Dimensi array dalam
numeric[7][24]
hanyalah dokumentasi. Manual:
-
Tentang operator penugasan di plpgsql:
:=
atau=
: -
Biasanya tidak mungkin untuk menulis ke elemen array secara langsung. Anda dapat menggabungkan atau menambahkan / menambahkan elemen. Atau tetapkan array secara keseluruhan. Rincian dalam manual. Tapi pernyataan seperti ini tidak mungkin :
tarifas[%][%] = 0 -
Batas bawah default array adalah 1, bukan 0. Tetapi Anda dapat menentukan dimensi array arbitrer. Contoh:
SELECT '[2:3][2:4]={{7,7,7},{7,7,7}}'::int[]