Skip to main content

MOVE

Positions a cursor.

Synopsis

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

Description

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.

Note You cannot MOVE a PARALLEL RETRIEVE CURSOR.

Note Because Cloudberry 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.

Outputs

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).

Examples

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;

Compatibility

There is no MOVE statement in the SQL standard.

See also

DECLARE, FETCH, CLOSE