SQL 过程中的游标

在 SQL 过程中,游标使您能够定义结果集(一组数据行)并以行为基础对行执行复杂逻辑。

通过使用相同机制,SQL 过程还可定义结果集并直接返回至 SQL 过程的调用程序或客户机应用程序。

可将游标视为一组行中的某行的指针。该游标一次只能引用一行,但可根据需要移至结果集的其他行。

要在 SQL 过程中使用游标,需要执行下列操作:
  1. 声明定义结果集的游标。
  2. 打开游标以建立结果集。
  3. 根据需要通过游标将数据访存到局部变量中(一次一行)。
  4. 完成时关闭游标
要使用游标,必须使用以下 SQL 语句:
  • DECLARE CURSOR
  • OPEN
  • FETCH
  • CLOSE
以下示例演示只读游标在 SQL 过程内的基本用法:

  CREATE PROCEDURE sum_salaries(OUT sum INTEGER) 
  LANGUAGE SQL
  BEGIN
    DECLARE p_sum INTEGER;
    DECLARE p_sal INTEGER;
    DECLARE SQLSTATE CHAR(5) DEFAULT '00000';
    DECLARE c CURSOR FOR SELECT SALARY FROM EMPLOYEE;
 
     SET p_sum = 0;

     OPEN c;

     FETCH FROM c INTO p_sal;

     WHILE(SQLSTATE = '00000') DO
        SET p_sum = p_sum + p_sal;
        FETCH FROM c INTO p_sal; 
     END WHILE;

     CLOSE c;

     SET sum = p_sum;

  END