On Fri, Mar 11, 2016 at 4:45 PM, Koichi Suzuki <koichi....@gmail.com> wrote:
> Hi, > > Does someone know how to prepare a synamic SQL statement in plpgsql? > > All the examples, PG documents describe only about preparing static SQL > statement. > > You might want to rephrase the question. From the pl/pgsql documentation: "Note: The PL/pgSQL EXECUTE statement is not related to the EXECUTE SQL statement supported by the PostgreSQL server. The server's EXECUTE statement cannot be used directly within PL/pgSQL functions (and is not needed)." http://www.postgresql.org/docs/9.5/interactive/plpgsql-statements.html#PLPGSQL-STATEMENTS-EXECUTING-DYN So even if you could SQL-PREPARE you wouldn't be able to execute it. The linked section describes how to construct and execute dynamic queries in pl/pgsql. The short answer is you create variable of type text and then EXECUTE it. stmt := format('SELECT * FROM %i', in_tbl_name); EXECUTE stmt [...] David J.