VastbaseG100

基于openGauss内核开发的企业级关系型数据库。

Menu

MOVE

功能描述

MOVE在不检索数据的情况下重新定位一个游标。MOVE的作用类似于FETCH命令,但只是重定位游标而不返回行。

注意事项

无。

语法格式

MOVE [ direction [ FROM | IN ] ] cursor_name;

其中direction子句为可选参数:

NEXT
   | PRIOR
   | FIRST
   | LAST
   | ABSOLUTE count
   | RELATIVE count
   | count
   | ALL
   | FORWARD
   | FORWARD count
   | FORWARD ALL
   | BACKWARD
   | BACKWARD count
   | BACKWARD ALL

参数说明

MOVE命令的参数与FETCH的相同,详细请参见FETCH的参数说明

MOVE命令成功执行时,将返回一个MOVE count的标签,count是一个使用相同参数的FETCH命令会返回的行数(可能为零)。

示例

前置条件:

1、创建表reason_t2。

CREATE TABLE reason_t2
(
  r_reason_sk    integer,
  r_reason_id    character(16),
  r_reason_desc  character(100)
);

2、向表中插入一条记录。

INSERT INTO reason_t2(r_reason_sk, r_reason_id, r_reason_desc) VALUES (1, 'AAAAAAAABAAAAAAA', 'reason1');
INSERT INTO reason_t2 VALUES (2, 'AAAAAAAABAAAAAAA', 'reason2');
INSERT INTO reason_t2 VALUES (3, 'AAAAAAAACAAAAAAA','reason3'),(4, 'AAAAAAAADAAAAAAA', 'reason4'),(5, 'AAAAAAAAEAAAAAAA','reason5');

示例:

1、开始一个事务。

START TRANSACTION;

2、定义一个名为cursor1的游标。

CURSOR cursor1 FOR SELECT * FROM reason_t2;

3、忽略游标cursor1的前2行。

MOVE FORWARD 2 FROM cursor1;

4、抓取游标cursor1的前4行。

FETCH 4 FROM cursor1;

结果显示为:

 r_reason_sk |   r_reason_id    |                                            r_reason_
desc
-------------+------------------+-----------------------------------------------------
-------------------------------------------------
           3 | AAAAAAAACAAAAAAA | reason3

           4 | AAAAAAAADAAAAAAA | reason4

           5 | AAAAAAAAEAAAAAAA | reason5

(3 rows)

5、关闭游标。

CLOSE cursor1;

6、结束一个事务。

END;

相关链接

CLOSEFETCH