Postgres normalmente no usa variables en SQL simple. Pero tú puedes haz eso también:
SET foo.test = 'SELECT bar FROM baz';
SELECT current_setting('foo.test');
Lea acerca de las opciones personalizadas en el manual.
En PostgreSQL 9.1 o anterior, necesitaba declarar custom_variable_classes
antes de que pudieras usar eso.
Sin embargo, usted no puede EXECUTE
SQL dinámico sin un PL (lenguaje de procedimiento). Usarías un DO
comando para ejecutar declaraciones ad-hoc (pero no puede devolver datos de él). O usa CREATE FUNCTION
para crear una función que ejecute SQL dinámico (y puede devolver datos de cualquier forma imaginable).
Asegúrese de protegerse contra la inyección de SQL cuando utilice SQL dinámico.
Relacionado:
- ¿Hay alguna forma de definir una constante con nombre en una consulta de PostgreSQL?