Postgres zwykle nie używa zmiennych w zwykłym SQL. Ale możesz zrób to też:
SET foo.test = 'SELECT bar FROM baz';
SELECT current_setting('foo.test');
Przeczytaj o opcjach niestandardowych w instrukcji.
W PostgreSQL 9.1 lub wcześniejszych trzeba było zadeklarować custom_variable_classes
zanim mogłeś tego użyć.
Jednak nie możesz EXECUTE
dynamiczny SQL bez PL (język proceduralny). Użyjesz DO
polecenie do wykonywania instrukcji ad-hoc (ale nie można z niego zwrócić danych). Lub użyj CREATE FUNCTION
aby utworzyć funkcję, która wykonuje dynamiczny SQL (i może zwracać dane w dowolny sposób, jaki można sobie wyobrazić).
Pamiętaj, aby zabezpieczyć się przed wstrzyknięciem SQL podczas korzystania z dynamicznego SQL.
Powiązane:
- Czy istnieje sposób na zdefiniowanie nazwanej stałej w zapytaniu PostgreSQL?