每次运行一个 DML 语句,或者一个 STORED PROCEDURE SELECT INTO 语句时,OceanBase 都会打开一个隐式游标。您可以从游标的属性值里获取游标的信息,但是不能操作这个游标。当 SQL 运行结束后,数据库会关闭这个游标。游标的属性值会一直不变,直到下一个 DML 或 SELECT INTO 语句被执行。

    STORED PROCEDURE 也允许声明游标,声明的游标会包含一个游标变量名跟一个查询语句(SQL SELECT 语句),查询会返回记录集。在声明游标后,您需要使用游标对记录集进行遍历(不管是显式的还是隐式的)。

    要隐式的使用游标,可以对游标使用 FOR LOOP 语句。语法格式如下:

    要显式的使用游标,先打开游标(使用 OPEN 语句);然后从结果集获取数据(使用 FETCH 语句),默认每次只处理一行记录,也可以使用 BULK FETCH 语句批量获取数据;结束后再关闭游标(使用 CLOSE 语句)。

    获取游标属性值的语法是 ,如:*c1%NOTFOUND*

    下表列举了常用的游标属性及其返回值的描述。