Istnieje EXECUTE oświadczenie plpgsql , który wykonałby to, co próbujesz zrobić - wykonaj ciąg zapytania SQL. Oznaczyłeś tagiem dynamiczny, więc może to być to, czego szukasz.
Działa tylko wewnątrz funkcji plpgsql lub DO instrukcje (anonimowe bloki kodu). Różnica między EXECUTE i SQL-EXECUTE wyjaśnione w dobrej instrukcji:
Uwaga: PL/pgSQL EXECUTE instrukcja nie jest powiązana z EXECUTE Instrukcja SQL obsługiwana przez serwer PostgreSQL. EXECUTE serwera Instrukcja nie może być używana bezpośrednio w funkcjach PL/pgSQL (i nie jest potrzebna).
Jeśli chcesz zwrócić wartości z dynamicznego SELECT zapytanie, jak wskazuje twój przykład, musisz utworzyć funkcję. DO instrukcje zawsze zwracają void . Więcej o zwracaniu wartości z funkcji w bardzo dokładnym podręczniku.