
# MOVE
#### 功能描述
MOVE在不检索数据的情况下重新定位一个游标。MOVE的作用类似于[FETCH](https://support.huaweicloud.com/centralized-devg-v8-gaussdb/gaussdb-42-0645.html#ZH-CN_TOPIC_0000002527828348)命令，区别是MOVE只重定位游标而不返回行。
#### 语法格式
```
MOVE [ direction [ FROM | IN ] ] cursor_name;
```
![](https://support.huaweicloud.com/centralized-devg-v8-gaussdb/figure/zh-cn_image_0000002558059131.png "点击放大")
其中direction子句为可选参数。
```
NEXT
   | PRIOR
   | FIRST
   | LAST
   | ABSOLUTE count
   | RELATIVE count
   | count
   | ALL
   | FORWARD
   | FORWARD count
   | FORWARD ALL
   | BACKWARD
   | BACKWARD count
   | BACKWARD ALL
```
![](https://support.huaweicloud.com/centralized-devg-v8-gaussdb/figure/zh-cn_image_0000002526899286.png "点击放大")
#### 参数说明
MOVE命令的参数与FETCH的相同，具体请参见[参数说明](https://support.huaweicloud.com/centralized-devg-v8-gaussdb/gaussdb-42-0645.html#ZH-CN_TOPIC_0000002527828348__zh-cn_topic_0000002558058041_zh-cn_topic_0283137321_zh-cn_topic_0237122165_zh-cn_topic_0059778422_sceb763c430654064b8f61e9aa0792af9)。
![](https://support.huaweicloud.com/centralized-devg-v8-gaussdb/public_sys-resources/note_3.0-zh-cn.png)
成功完成时，MOVE命令将返回一个"MOVE count"的标签，count是一个使用相同参数的FETCH命令会返回的行数（可能为零）。
#### 示例
```
--建表并插入数据。
gaussdb=# CREATE TABLE tbl_test(c1 int);
gaussdb=# INSERT INTO tbl_test VALUES (generate_series(1,20));
--建立一个名为cursor1的游标。
gaussdb=# BEGIN;
gaussdb=# CURSOR cursor1 FOR SELECT * FROM tbl_test ORDER BY 1;
--使用MOVE命令使游标向后移动5行，不返回结果。
gaussdb=# MOVE FORWARD 5 FROM cursor1;
MOVE 5
--使用FETCH命令检索两行数据。
gaussdb=# FETCH FORWARD 2 FROM cursor1;
 c1 
----
  6
  7
(2 rows)
--关闭游标并结束事务。
gaussdb=# CLOSE cursor1;
gaussdb=# END;
--删除。
gaussdb=# DROP TABLE tbl_test;
```
#### 相关链接
[CLOSE](https://support.huaweicloud.com/centralized-devg-v8-gaussdb/gaussdb-42-0529.html#ZH-CN_TOPIC_0000002527988240)，[FETCH](https://support.huaweicloud.com/centralized-devg-v8-gaussdb/gaussdb-42-0645.html#ZH-CN_TOPIC_0000002527828348)
