Mam sobie funkcje w ktorej dynamicznie tworze zapytanie i chce zwrocic kilka pol, no i mam troszeczke problemy z tym.

Zamieszczam przyklad uproszczonej funkcji, dodam ze nie interesuje mnie zwrocenie select *, tylko okreslonej ilosci pol. Jesli zamiast * podam pola to funkcja wysypuje się. Jaki sa inne rozwiazania tego problemu?

  1. DECLARE
  2. p_iId ALIAS FOR $1;
  3. szZapytanie text;
  4. aRekord t%ROWTYPE;
  5. BEGIN szZapytanie := ''SELECT a, b, c FROM t WHERE a = '' || p_iId;
  6.  
  7. FOR aRekord IN EXECUTE szZapytanie LOOP
  8. RETURN aRekord.b || aRekord.b;
  9. END LOOP;
  10. END;