由SELECT语句返回的结果集通常包括一系列的记录行,但经常有一些情况下,并不总是能够将整个结果集作为一个单元来有效地处理。这时就需要一种机制以便每次处理一行记录,数据库中的游标就提供了这种机制。由于游标的意义,大多数的数据库都支持游标。GBase 8s 分布式数据库也支持游标,但游标的定义和使用有一定的限制。
本节中描述的游标为静态游标,即在DECLARE时必须指定SELECT STATEMENT语句的结果集进行绑定;在后续操作中只能对于该结果集进行只读、仅向前的操作。
对于动态游标的定义及使用,请参见“5.7.14 动态游标(REF CURSOR)”。
游标必须在声明处理器之前被声明,变量和条件必须在声明游标或处理器之前被声明。
示例1:静态游标完整示例。
gbase> DELIMITER //
gbase> DROP PROCEDURE IF EXISTS curdemo //
Query OK, 0 rows affected
gbase> CREATE PROCEDURE curdemo()