Postgres biasanya tidak menggunakan variabel dalam SQL biasa. Tapi Anda bisa lakukan itu juga:
SET foo.test = 'SELECT bar FROM baz';
SELECT current_setting('foo.test');
Baca tentang Opsi yang Disesuaikan di manual.
Di PostgreSQL 9.1 atau sebelumnya Anda perlu mendeklarasikan custom_variable_classes
sebelum Anda bisa menggunakannya.
Namun, Anda tidak bisa EXECUTE
SQL dinamis tanpa PL (bahasa prosedural). Anda akan menggunakan DO
perintah untuk mengeksekusi pernyataan ad-hoc (tetapi Anda tidak dapat mengembalikan data darinya). Atau gunakan CREATE FUNCTION
untuk membuat fungsi yang mengeksekusi SQL dinamis (dan dapat mengembalikan data dengan cara apa pun yang dapat dibayangkan).
Pastikan untuk melindungi dari injeksi SQL saat menggunakan SQL dinamis.
Terkait:
- Apakah ada cara untuk mendefinisikan konstanta bernama dalam kueri PostgreSQL?