Existe o
EXECUTE
declaração de plpgsql , que faria o que você está tentando fazer - executar uma string de consulta SQL. Você marcou dinâmico, então isso pode ser o que você está procurando. Funciona apenas dentro de funções plpgsql ou
DO
instruções (blocos de código anônimos). A distinção entre EXECUTE
e SQL-EXECUTE
deixou claro no manual fino:
Observação: O PL/pgSQLEXECUTE
instrução não está relacionada aoEXECUTE
SQLstatement suportada pelo servidor PostgreSQL. OEXECUTE
do servidor A instrução não pode ser usada diretamente dentro de funções PL/pgSQL (e não é necessária).
Se você deseja retornar valores de um
SELECT
dinâmico query como seu exemplo indica, você precisa criar uma função. DO
declarações sempre retornam void
. Mais sobre como retornar valores de uma função no manual muito bom.