Positions a cursor.
MOVE [ <forward_direction> [ FROM | IN ] ] <cursor_name>
where <forward_direction> can be empty or one of:
NEXT
FIRST
LAST
ABSOLUTE <count>
RELATIVE <count>
<count>
ALL
FORWARD
FORWARD <count>
FORWARD ALL
MOVE
repositions a cursor without retrieving any data. MOVE
works exactly like the FETCH command, except it only positions the cursor and does not return rows.
NoteYou cannot
MOVE
aPARALLEL RETRIEVE CURSOR
.
NoteBecause Greenplum Database does not support scrollable cursors, it is not possible to move a cursor position backwards. You can only move a cursor forward in position using
MOVE
.
The parameters for the MOVE
command are identical to those of the FETCH
command; refer to FETCH for details on syntax and usage.
On successful completion, a MOVE
command returns a command tag of the form
MOVE <count>
The count is the number of rows that a FETCH
command with the same parameters would have returned (possibly zero).
Start the transaction:
BEGIN;
Create a cursor:
DECLARE mycursor CURSOR FOR SELECT * FROM films;
Skip the first 5 rows in the cursor mycursor
:
MOVE FORWARD 5 IN mycursor;
MOVE 5
Fetch the next row after that (row 6):
FETCH 1 FROM mycursor;
code | title | did | date_prod | kind | len
-------+--------+-----+------------+--------+-------
P_303 | 48 Hrs | 103 | 1982-10-22 | Action | 01:37
(1 row)
Close the cursor and end the transaction:
CLOSE mycursor;
COMMIT;
There is no MOVE
statement in the SQL standard.
Parent topic: SQL Commands