The cursor position can be before the first row of the query result, or on
- any particular row of the result.
+ any particular row of the result, or after the last row of the result.
When created, a cursor is positioned before the first row. After fetching
some rows, the cursor is positioned on the last row retrieved. A new
FETCH always steps one row in the specified direction
(if possible) before beginning to return rows. If the
FETCH requests more rows than available, the cursor is
- left positioned on the last row of the query result (or on the first
+ left positioned after the last row of the query result (or before the first
row, in the case of a backward fetch). This will always be the case after
FETCH ALL>.
A zero row count requests fetching the current row without moving the
cursor --- that is, re-fetching the most recently fetched row.
This will succeed unless the cursor is positioned before the
- first row; in which case, no row is returned.
+ first row or after the last row; in which case, no row is returned.
MOVE allows the user to move the cursor position a
specified number of rows, or to the beginning or end of the cursor.
- MOVE ALL moves to the last row of the cursor.
+ MOVE ALL moves to the end of the cursor.
MOVE works exactly like the FETCH
command, except it only repositions the cursor and does not return rows.