引用游标变量

在与检索和访问结果集或调用过程并将游标变量作为参数传递有关的游标操作中,可通过多种方式引用游标变量。

关于此任务

以下语句可用于在 SQL PL 上下文中引用游标变量:
  • CALL
  • SET
  • OPEN
  • FETCH
  • CLOSE

访问与游标变量相关联的结果集时,OPEN、FETCH 和 CLOSE 语句会经常一起使用。OPEN 语句用于初始化与游标变量相关联的结果集。成功执行此语句时,游标变量与结果集相关联,并且可访问结果集中的行。FETCH 语句用于专门检索游标变量当前访问的行中的列值。CLOSE 语句用于结束游标变量的处理。

以下是已创建行数据类型定义以及包含游标变量定义的 SQL 过程定义的示例。SQL 过程中演示了 OPEN、FETCH 和 CLOSE 语句如何与游标变量配合使用:
CREATE TYPE simpleRow AS ROW (c1 INT, c2 INT, c3 INT);

CREATE PROCEDURE P(OUT p1 INT, OUT p2 INT, PUT p3 INT, OUT pRow simpleRow)
LANGUAGE SQL
BEGIN      

      CREATE TYPE simpleCur AS CURSOR RETURNS simpleRow
      DECLARE c1 simpleCur;
      DECLARE localVar1 INTEGER;
      DECLARE localVar2 INTEGER;
      DECLARE localVar3 INTEGER;
      DECLARE localRow simpleRow;

      SET c1 = CURSOR FOR SELECT * FROM T;

      OPEN C1;

      FETCH c1 INTO localVar1, localVar2, localVar3;

      FETCH c1 into localRow;

      SET p1 = localVar1;

      SET p2 = localVar2;
 
      SET p3 = localVar3;

      SET pRow = localRow;

      CLOSE c1;

END;
游标变量还可作为 CALL 语句中的参数引用。与其他参数一样,游标变量参数只需通过名称引用。以下是 SQL 过程中的 CALL 语句的示例,该语句引用作为输出参数的游标变量 curVar
CALL P2(curVar);