Il y a le EXECUTE
déclaration de plpgsql , qui ferait ce que vous essayez de faire - exécuter une chaîne de requête SQL. Vous avez marqué dynamique, c'est peut-être ce que vous recherchez.
Fonctionne uniquement dans les fonctions plpgsql ou DO
instructions (blocs de code anonymes). La distinction entre EXECUTE
et SQL-EXECUTE
précisé dans le beau manuel :
Remarque : Le PL/pgSQL
EXECUTE
l'instruction n'est pas liée àEXECUTE
Instruction SQL prise en charge par le serveur PostgreSQL. LeEXECUTE
du serveur L'instruction ne peut pas être utilisée directement dans les fonctions PL/pgSQL (et n'est pas nécessaire).
Si vous souhaitez renvoyer des valeurs à partir d'un SELECT
dynamique query comme l'indique votre exemple, vous devez créer une fonction. DO
les instructions renvoient toujours void
. Plus d'informations sur le retour des valeurs d'une fonction dans le très bon manuel.