postgres stored procedure pl pgSQL tablice - ghdrako/doc_snipets GitHub Wiki

Zmienne PL/pgSQL i kolumny tabel mogą być tablicami. Tablica — uporządkowany zbiór danych jednego typu.

Podczas deklarowania tablicy należy określić jej nazwę, typ danych elementów, [rozmiar(wymiar)]. Charakterystyczną i bardzo przydatną cechą tablicy jest możliwość bezpośredniego dostępu do jej elementów. Aby odwołać się do elementu tablicy, należy podać nazwę elementu i jego indeks. Elementy tablicy mogą mieć dowolny z wbudowanych typów, a także typy definiowane przez użytkowników, w tym typy tablic.

Składnia deklaracji zmiennej będącej tablicą:

{nazwa zmiennej}{typ elementów}[{array}][n];

gdzie n — maksymalny rozmiar tablicy (wskazywanie nie jest obowiązkowe)

Słowo kluczowe array nie jest obowiązkowe, ale będziemy go używać, po pierwsze, ponieważ jest to zgodne ze standardami SQL, po drugie, od razu staje się jasne, z jakim typem danych mamy do czynienia.

DO $$
DECLARE
v_name varchar(45) array;
BEGIN
  v_name[l] := 'Bruce Ernst';
  v_name[2] := 'Diana Lorentz';
  v_name[3] := 'Alexander Hunold'; 
  RAISE NOTICE 'Результат: ';
  RAISE NOTICE '% ', v_name[2]; 
END $$;

Przypisywanie wartości elementom tablicy przy użyciu pętli dla kursora

DO $$
DECLARE
  Cur_Emp_Name cursor for
  SELECT first_name||' '||last_name As name
    FROM Employees WHERE department_id = 60;
  v_name VARCHAR(45) array;
  v_i integer:=0;
BEGIN
  FOR emp_rec IN Cur_Emp_Name
  LOOP
    v_i := v_i+l;
    v_name[v_i] := emp_rec.name;
  END LOOP;
  RAISE NOTICE 'Результат: ';
  RAISE NOTICE '% ', v_name[2];
END $$;

Funkcje do pracy z tablicami