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