Postgres běžně nepoužívá proměnné v prostém SQL. Ale můžete udělejte to také:
SET foo.test = 'SELECT bar FROM baz';
SELECT current_setting('foo.test');
Přečtěte si o přizpůsobených možnostech v příručce.
V PostgreSQL 9.1 nebo starším jste potřebovali deklarovat custom_variable_classes
než to budete moci použít.
Vy však nemůžete EXECUTE
dynamické SQL bez PL (procedurální jazyk). Použili byste DO
příkaz pro provádění ad-hoc příkazů (ale nelze z něj vrátit data). Nebo použijte CREATE FUNCTION
vytvořit funkci, která spouští dynamické SQL (a může vracet data jakýmkoli představitelným způsobem).
Při používání dynamického SQL se ujistěte, že se chráníte proti vkládání SQL.
Související:
- Existuje způsob, jak definovat pojmenovanou konstantu v dotazu PostgreSQL?