云数据库 GAUSSDB-CURSOR:示例

时间:2024-11-13 14:45:35

示例

示例1:

--建表并插入数据。
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;

--使用FETCH命令检索3行数据。
gaussdb=# FETCH FORWARD 3 FROM cursor1;
 c1 
----
  1
  2
  3
(3 rows)

--使用MOVE命令使游标向后移动2行,不返回结果。
gaussdb=# MOVE FORWARD 2 FROM cursor1;
MOVE 2

--使用FETCH命令检索两行数据。
gaussdb=# FETCH FORWARD 2 FROM cursor1;
 c1 
----
  6
  7
(2 rows)

--关闭游标并结束事务。
gaussdb=# CLOSE cursor1;
gaussdb=# END;
示例2:带WITH HOLD属性的游标
--建立一个名为cursor2的WITH HOLD游标。
gaussdb=# BEGIN;
gaussdb=# CURSOR cursor2 WITH HOLD FOR SELECT * FROM tbl_test ORDER BY 1;

--使用FETCH命令检索3行数据。
gaussdb=# FETCH FORWARD 3 FROM cursor2;
 c1 
----
  1
  2
  3
(3 rows)

--和普通的游标不一样,结束事务后,带WITH HOLD属性的游标依然可以使用。
gaussdb=# END;
gaussdb=# FETCH FORWARD 2 FROM cursor2;
 c1 
----
  4
  5
(2 rows)

--关闭游标。
gaussdb=# CLOSE cursor2;

--删除。
gaussdb=# DROP TABLE tbl_test;
support.huaweicloud.com/centralized-devg-v8-gaussdb/gaussdb-42-0586.html