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.