Repositions a cursor without retrieving any data. MOVE works exactly like the FETCH command, except it only repositions the cursor and does not return rows.
None
1 | MOVE [ direction [ FROM | IN ] ] cursor_name; |
The direction clause specifies optional parameters.
1 2 3 4 5 6 7 8 9 10 11 12 13 14 | NEXT | PRIOR | FIRST | LAST | ABSOLUTE count | RELATIVE count | count | ALL | FORWARD | FORWARD count | FORWARD ALL | BACKWARD | BACKWARD count | BACKWARD ALL |
MOVE command parameters are the same as FETCH command parameters. For details, see Parameter Description in FETCH.
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 a transaction:
1 | START TRANSACTION; |
Define the cursor1 cursor:
1 | CURSOR cursor1 FOR SELECT * FROM tpcds.reason; |
Skip the first three rows of cursor1:
1 | MOVE FORWARD 3 FROM cursor1; |
Fetch the first four rows from cursor1:
1 2 3 4 5 6 7 8 | FETCH 4 FROM cursor1; r_reason_sk | r_reason_id | r_reason_desc -------------+------------------+------------------------------------------------------------------------------------------------------ 4 | AAAAAAAAEAAAAAAA | Not the product that was ordred 5 | AAAAAAAAFAAAAAAA | Parts missing 6 | AAAAAAAAGAAAAAAA | Does not work with a product that I have 7 | AAAAAAAAHAAAAAAA | Gift exchange (4 rows) |
Close a cursor:
1 | CLOSE cursor1; |
End the transaction:
1 | END; |