| 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.1 Declaring Cursor Variables
All access to cursors in PL/pgSQL goes through
cursor variables, which are always of the special data type
refcursor. One way to create a cursor variable
is just to declare it as a variable of type refcursor.
Another way is to use the cursor declaration syntax,
which in general is:
name [ [ NO ] SCROLL ] CURSOR [ ( arguments ) ] FOR query;
(FOR can be replaced by IS for
Oracle compatibility.)
If SCROLL is specified, the cursor will be capable of
scrolling backward; if NO SCROLL is specified, backward
fetches will be rejected; if neither specification appears, it is
query-dependent whether backward fetches will be allowed.
arguments, if specified, is a
comma-separated list of pairs name
datatype that define names to be
replaced by parameter values in the given query. The actual
values to substitute for these names will be specified later,
when the cursor is opened.
Some examples:
DECLARE
curs1 refcursor;
curs2 CURSOR FOR SELECT * FROM tenk1;
curs3 CURSOR (key integer) IS SELECT * FROM tenk1 WHERE
unique1 = key;
All three of these variables have the data type refcursor,
but the first can be used with any query, while the second has
a fully specified query already bound to it, and the last
has a parameterized query bound to it. (key will be
replaced by an integer parameter value when the cursor is opened.)
The variable curs1
is said to be unbound since it is not bound to
any particular query.
| ISBN 9781906966065 | The PostgreSQL 9.0 Reference Manual - Volume 2 - Programming Guide | See the print edition |