PostgreSQL
 sql >> Base de données >  >> RDS >> PostgreSQL

requête dynamique postgres

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. Le EXECUTE 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.