MOVE

Позиционирует курсор.

Синтаксис

MOVE [ <forward_direction> [ FROM | IN ] ] <cursor_name>

где <forward_direction> может быть пустым или одним из следующих значений:

    NEXT
    FIRST
    LAST
    ABSOLUTE <count>
    RELATIVE <count>
    <count>
    ALL
    FORWARD
    FORWARD <count>
    FORWARD ALL

Описание

Команда MOVE изменяет позицию курсора, не извлекая при этом данные. Команда MOVE работает точно так же, как команда FETCH, за исключением того, что она лишь перемещает позицию курсора и не возвращает строки.

Примечание!
Нельзя использовать MOVE с PARALLEL RETRIEVE CURSOR.

Примечание!
Поскольку Database не поддерживает прокручиваемые курсоры, переместить курсор назад невозможно. Вы можете перемещать курсор только вперёд с помощью команды MOVE.

Параметры команды MOVE идентичны параметрам команды FETCH; подробности о синтаксисе и использовании см. в описании команды FETCH.

Результаты выполнения

При успешном завершении команда MOVE возвращает тег команды вида

MOVE <count>

Здесь значение count — это количество строк, которое вернула бы команда FETCH с теми же параметрами (возможно, ноль).

Примеры

Начните транзакцию:

BEGIN;

Создайте курсор:

DECLARE mycursor CURSOR FOR SELECT * FROM films;

Пропустите первые 5 строк в курсоре mycursor:

MOVE FORWARD 5 IN mycursor;
MOVE 5

Извлеките следующую строку (строка 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 mycursor;
COMMIT;

Совместимость

В стандарте SQL отсутствует оператор MOVE.

См. также

DECLARE, FETCH, CLOSE