Name
DECLARE -- define a cursor
Synopsis
DECLARE cursor_name [ BINARY ] [ INSENSITIVE ] [ [ NO ] SCROLL ] CURSOR [ { WITH | WITHOUT } HOLD ] FOR prepared_name
DECLARE cursor_name [ BINARY ] [ INSENSITIVE ] [ [ NO ] SCROLL ] CURSOR [ { WITH | WITHOUT } HOLD ] FOR query
Description
DECLARE declares a cursor for iterating over the result set of a prepared statement. This command has slightly different semantics from the direct SQL command DECLARE: Whereas the latter executes a query and prepares the result set for retrieval, this embedded SQL command merely declares a name as a "loop variable" for iterating over the result set of a query; the actual execution happens when the cursor is opened with the OPEN command.
Parameters
A cursor name, case sensitive. This can be an SQL identifier or a host variable.
The name of a prepared query, either as an SQL identifier or a host variable.
A SELECT or VALUES command which will provide the rows to be returned by the cursor.
For the meaning of the cursor options, see DECLARE.
See
Refer to "SQL Commands" in "Reference" in the PostgreSQL Documentation for information on the SELECT, VALUES and DECLARE command.
Examples
Examples declaring a cursor for a query:
EXEC SQL DECLARE C CURSOR FOR SELECT * FROM My_Table END-EXEC. EXEC SQL DECLARE C CURSOR FOR SELECT Item1 FROM T END-EXEC. EXEC SQL DECLARE cur1 CURSOR FOR SELECT version() END-EXEC.
An example declaring a cursor for a prepared statement:
EXEC SQL PREPARE stmt1 AS SELECT version() END-EXEC. EXEC SQL DECLARE cur1 CURSOR FOR stmt1 END-EXEC.
Compatibility
DECLARE is specified in the SQL standard.
See Also
OPEN, CLOSE, DECLARE
See
Refer to "SQL Commands" in "Reference" in the PostgreSQL Documentation for information on the CLOSE and DECLARE command.