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 $$;