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 命令用于重新定位游标,但不会检索任何数据。其运作方式与 FETCH 命令完全相同,区别仅在于它仅定位游标而不返回行数据。

注意!
您无法移动并行检索游标。

注意!
由于数据库不支持可滚动游标,因此无法将游标位置向后移动。您只能使用 MOVE 命令向前移动游标位置。

MOVE 命令的参数与FETCH命令完全相同;有关语法和用法详情,请参阅 FETCH 命令说明。

输出

成功执行后,MOVE命令返回形式为

MOVE <count>

计数值表示具有相同参数的FETCH命令本应返回的行数(可能为零)。

示例

开始交易:

BEGIN;

创建游标:

DECLARE mycursor CURSOR FOR SELECT * FROM films;

跳过游标 mycursor 中的前 5 行:

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