Ada EXECUTE pernyataan plpgsql , yang akan melakukan apa yang Anda coba lakukan - jalankan string kueri SQL. Anda menandai dinamis, jadi ini mungkin yang Anda cari.
Hanya berfungsi di dalam fungsi plpgsql atau DO pernyataan (blok kode anonim). Perbedaan antara EXECUTE dan SQL-EXECUTE dijelaskan dalam manual yang bagus:
Catatan: PL/pgSQL
EXECUTEpernyataan tidak terkait denganEXECUTEPernyataan SQL didukung oleh server PostgreSQL.EXECUTEserver server pernyataan tidak dapat digunakan secara langsung dalam fungsi PL/pgSQL (dan tidak diperlukan).
Jika Anda ingin mengembalikan nilai dari SELECT dinamis kueri seperti yang ditunjukkan oleh contoh Anda, Anda perlu membuat fungsi. DO pernyataan selalu mengembalikan void . Selengkapnya tentang mengembalikan nilai dari suatu fungsi di manual yang sangat bagus.