Temat: Problem z typami danych i funkcją
Witam
Z bazami miałem już kiedyś coś do czynienia... tzn. z prostymi zapytaniami SQL'owymi. Dziś przyszło mi napisać całą bazę, no i konieczne było stworzenie kilku triggerów i funkcji. No i pojawił się problem... (Funkcję piszę w języku PLPGSQL).
W pewnej funkcji A mam wywołanie innej funkcji B. Funkcja B przyjmuje jako argument liczbę integer będąca nr ID w danej tabeli Z, działanie funkcji jest proste: usuwa ona rekord z tabeli Z o ID przekazanym jako argument. W funkcji A, ID które przekazywane do funkcji B jest pobierane z tabeli X, problem jest taki, że nie jest to jedno ID tylko kolumna tabeli X składająca się z 0 lub więcej wierszy (0 lub więcej IDków). Zastosował bym tu jakąś pętle, np. FOR. Tylko nie wiem w jaką zmienną (typ tej zmiennej) "zapakować" wynik zapytania zwracającego kolumnę IDków, które chce przekazać do funkcji B.
Oczywiście googlowałem co nieco i coś znalazłem: mianowicie %TYPE. Wtedy w ciele funckji mam cos takiego:
-- ...
-- ...
-- ...
DECLARE
usuwane_rekordy X.id%TYPE
BEGIN
SELECT id INTO usuwane_rekordy FROM X where <jakis warunek>
-- ....
-- ....
-- ....
END;
Nie wiem czy idę w dobrym kierunku... czy idzie się jakoś odnieść do pojedynczych rekordów zawartych w zmiennej usuwane_rekordy?
Tzn powiedzmy, że zapytanie pobrało 4 wyniki i zapisało do zmiennej usuwane_rekordy. Czy można teraz walnąć pętle FOR na 4 iteracje i w każdej z niej wykonać funkcję B z kolejnym nr ID?
Jeśli ktoś zrozumiał o co mi chodzi i ma jakiś pomysł, propozycję, sugestię jak to ugryźć to dawać
Będe wdzięczny za jakikolwiek trop