Има EXECUTE изявление на plpgsql , което би направило това, което се опитвате да направите - изпълни низ на SQL заявка. Маркирали сте dynamic, така че това може да е това, което търсите.
Работи само вътре във функциите plpgsql или DO оператори (анонимни кодови блокове). Разликата между EXECUTE и SQL-EXECUTE ясно е посочено във финото ръководство:
Забележка: PL/pgSQL
EXECUTEоператорът не е свързан сEXECUTESQL оператор, поддържан от PostgreSQL сървъра.EXECUTEна сървъра операторът не може да се използва директно във функциите на PL/pgSQL (и не е необходим).
Ако искате да върнете стойности от динамичен SELECT заявка, както показва примерът ви, трябва да създадете функция. DO операторите винаги връщат void . Повече за връщането на стойности от функция в много финото ръководство.