PostgreSQL 8.0.1 Documentation | ||||
---|---|---|---|---|
Prev | Fast Backward | Chapter 29. ECPG - Embedded SQL in C | Fast Forward | Next |
29.7. Dynamic SQL
In many cases, the particular SQL statements that an application has to execute are known at the time the application is written. In some cases, however, the SQL statements are composed at run time or provided by an external source. In these cases you cannot embed the SQL statements directly into the C source code, but there is a facility that allows you to call arbitrary SQL statements that you provide in a string variable.
The simplest way to execute an arbitrary SQL statement is to use the command EXECUTE IMMEDIATE. For example:
You may not execute statements that retrieve data (e.g., SELECT) this way.
A more powerful way to execute arbitrary SQL statements is to prepare them once and execute the prepared statement as often as you like. It is also possible to prepare a generalized version of a statement and then execute specific versions of it by substituting parameters. When preparing the statement, write question marks where you want to substitute parameters later. For example:
If the statement you are executing returns values, then add an INTO clause:
An EXECUTE command may have an INTO clause, a USING clause, both, or neither.
When you don't need the prepared statement anymore, you should deallocate it: