Examples of Cursors in ANSI-Compliant Databases

In an ANSI-compliant database, a cursor associated with a SELECT statement is an update cursor by default.

The following example declares an update cursor in an ANSI-compliant database:
EXEC SQL declare x_curs cursor for select * from customer_ansi;
To make it clear in the program documentation that this cursor is an update cursor, you can specify the FOR UPDATE option as in this example:
EXEC SQL declare x_curs cursor for 
   select * from customer_ansi for update;
If you want an update cursor to be able to modify only some of the columns in a table, you must specify these columns in the FOR UPDATE option. The following example declares an update cursor and specifies that this cursor can update only the fname and lname columns in the customer_ansi table:
EXEC SQL declare y_curs cursor for
   select * from customer_ansi for update of fname, lname;
If you want a cursor to be a read-only cursor, you must override the default behavior of the DECLARE statement by specifying the FOR READ ONLY option in your DECLARE statement. The following example declares a read-only cursor:
EXEC SQL declare z_curs cursor for
   select * from customer_ansi for read only;