An update cursor
An update cursor permits you to delete or
update the current row; that is, the most recently fetched row. The
following example in shows
the declaration of an update cursor:
EXEC SQL
DECLARE names CURSOR FOR
SELECT fname, lname, company
FROM customer
FOR UPDATE;
The program that uses this cursor can fetch rows in the
usual way.
EXEC SQL
FETCH names INTO :FNAME, :LNAME, :COMPANY;
If the program then decides that the row needs to be changed,
it can do so.
if (strcmp(COMPANY, "SONY") ==0)
{
EXEC SQL
UPDATE customer
SET fname = 'Midori', lname = 'Tokugawa'
WHERE CURRENT OF names;
}
The words CURRENT OF names
take the place
of the usual test expressions in the WHERE clause. In other respects,
the UPDATE statement is the same as usual, even including the specification
of the table name, which is implicit in the cursor name but still
required.