Postgres có một chức năng dành riêng cho mục đích đó chính xác: array_fill()
:
Sử dụng nó:
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;
Ghi chú
- Kích thước mảng ở dạng
numeric[7][24]
chỉ là tài liệu. Hướng dẫn:
-
Giới thiệu về toán tử gán trong plpgsql:
:=
hoặc=
: -
Nói chung không thể ghi trực tiếp vào một phần tử mảng. Bạn có thể nối hoặc nối / thêm các phần tử. Hoặc gán tổng thể một mảng. Chi tiết trong sách hướng dẫn. Nhưng một tuyên bố như thế này là không thể :
tarifas[%][%] = 0 -
Giới hạn dưới mặc định của một mảng là 1, không phải 0. Nhưng bạn có thể xác định kích thước mảng tùy ý. Ví dụ:
SELECT '[2:3][2:4]={{7,7,7},{7,7,7}}'::int[]