Temat: [SQL] Funkcje
Witam,
Szukam rozwiązania, szperam w Manualu Postgresa, ale jakoś mi nie wychodzi. Próbuję stworzyć funkcję, pobierającą rekordy z bazy danych - to nie jest problemem. Problemem jest stworzenie "type". Normalnie definiuje pola, które ma zwracać, czyli np.
CREATE TYPE type_profile (profile_id integer, profile_name text) itd.
a później tworzę sobie do tego funkcję, np.
CREATE OR REPLACE function f_profile(profile_number integer) RETURNS SETOF type_profile AS $$
DECLARE
profile_number alias FOR $1;
result type_profile;
BEGIN
FOR result IN
SELECT * FROM tabela WHERE id = profile_number itd.
LOOP
RETURN NEXT result;
END LOOP;
RETURN;
END;
$$ LANGUAGE 'plpgsql';
Teraz jednak nie wiem, ile pól (i jakie ma zwracać "type"), próbowałem coś w stylu:
CRETATE TYPE type_profile(*)
Ale to oczywiście nie działa. Nie bardzo wiem, jak się do tego zabrać. Chcę zrobić funkcję, zwracającą mi rekordy, na podstawie parametru, ale chyba poległem...
Any ideas? :-)
Pozdrawiam,
Rafał