MOVE

功能描述

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

注意事项

无。

语法格式

  1. MOVE [ direction [ FROM | IN ] ] cursor_name;

其中direction子句为可选参数。

  1. NEXT
  2. | PRIOR
  3. | FIRST
  4. | LAST
  5. | ABSOLUTE count
  6. | RELATIVE count
  7. | count
  8. | ALL
  9. | FORWARD
  10. | FORWARD count
  11. | FORWARD ALL
  12. | BACKWARD
  13. | BACKWARD count
  14. | BACKWARD ALL

参数说明

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

MOVE - 图1 说明: 成功完成时,MOVE命令将返回一个“MOVE count”的标签,count是一个使用相同参数的FETCH命令会返回的行数(可能为零)。

示例

  1. --开始一个事务。
  2. openGauss=# START TRANSACTION;
  3. --定义一个名为cursor1的游标。
  4. openGauss=# CURSOR cursor1 FOR SELECT * FROM tpcds.reason;
  5. --忽略游标cursor1的前3行。
  6. openGauss=# MOVE FORWARD 3 FROM cursor1;
  7. --抓取游标cursor1的前4行。
  8. openGauss=# FETCH 4 FROM cursor1;
  9. r_reason_sk | r_reason_id | r_reason_desc
  10. -------------+------------------+------------------------------------------------------------------------------------------------------
  11. 4 | AAAAAAAAEAAAAAAA | Not the product that was ordred
  12. 5 | AAAAAAAAFAAAAAAA | Parts missing
  13. 6 | AAAAAAAAGAAAAAAA | Does not work with a product that I have
  14. 7 | AAAAAAAAHAAAAAAA | Gift exchange
  15. (4 rows)
  16. --关闭游标。
  17. openGauss=# CLOSE cursor1;
  18. --结束一个事务。
  19. openGauss=# END;

相关链接

CLOSEFETCH