| The PostgreSQL 9.0 Reference Manual - Volume 2 - Programming Guide
by The PostgreSQL Global Development Group Paperback (6"x9"), 478 pages ISBN 9781906966065 RRP £14.95 ($19.95) Sales of this book support the PostgreSQL project! Get a printed copy>>> |
9.7.2.2 OPEN FOR EXECUTE
OPEN unbound_cursorvar [ [ NO ] SCROLL ] FOR EXECUTE query_string
[ USING expression [,
... ] ];
The cursor variable is opened and given the specified query to
execute. The cursor cannot be open already, and it must have been
declared as an unbound cursor variable (that is, as a simple
refcursor variable). The query is specified as a string
expression, in the same way as in the EXECUTE
command. As usual, this gives flexibility so the query plan can vary
from one run to the next (see section 9.10.2 Plan Caching),
and it also means that variable substitution is not done on the
command string. As with EXECUTE, parameter values
can be inserted into the dynamic command via USING.
The SCROLL and
NO SCROLL options have the same meanings as for a bound
cursor.
An example:
OPEN curs1 FOR EXECUTE 'SELECT * FROM ' || quote_ident(tabname)
|| ' WHERE col1 = $1'
USING keyvalue;
In this example, the table name is inserted into the query textually,
so use of quote_ident() is recommended to guard against
SQL injection. The comparison value for col1 is inserted
via a USING parameter, so it needs no quoting.
| ISBN 9781906966065 | The PostgreSQL 9.0 Reference Manual - Volume 2 - Programming Guide | See the print edition |