PostgreSQL
 sql >> Datenbank >  >> RDS >> PostgreSQL

Mehrdimensionales Array füllen

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[]