SQL 过程中的游标
在 SQL 过程中,游标使您能够定义结果集(一组数据行)并以行为基础对行执行复杂逻辑。
通过使用相同机制,SQL 过程还可定义结果集并直接返回至 SQL 过程的调用程序或客户机应用程序。
可将游标视为一组行中的某行的指针。该游标一次只能引用一行,但可根据需要移至结果集的其他行。
要在 SQL 过程中使用游标,需要执行下列操作:
- 声明定义结果集的游标。
- 打开游标以建立结果集。
- 根据需要通过游标将数据访存到局部变量中(一次一行)。
- 完成时关闭游标
要使用游标,必须使用以下 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