系统引用游标
引用游标是一种对结果集的引用。
相比静态的普通游标在编译时定义,系统引用游标可以动态打开,并在运行时定义。
系统引用游标只能用于块语句、存储过程、存储函数中。
语法格式
- 系统引用游标声明sql
ColId SYS_REFCURSOR;
- 系统引用游标打开sql
OPEN ColId FOR SelectStmt;
- 系统引用游标关闭sql
CLOSE ColId;
参数说明
ColId
:游标变量的名称。SelectStmt
:数据库查询语句,决定了系统引用游标所引用的结果集。
示例
假设表tab_test已存在并有4条数据。
sql
DECLARE
i INT;
v_chr VARCHAR;
-- (1) 系统引用游标声明
cur_sysref SYS_REFCURSOR;
BEGIN
-- (2) 系统引用游标打开
OPEN cur_sysref FOR SELECT c2 FROM tab_test;
i := 1;
LOOP
FETCH cur_sysref INTO v_chr;
EXIT WHEN cur_sysref%NOTFOUND;
SEND_MSG('Row ' || i || ' is: ' || v_chr);
i := i + 1;
END LOOP;
-- (3) 系统引用游标关闭
CLOSE cur_sysref;
END;
-------------------
Row 1 is: a
Row 2 is: b
Row 3 is: c
Row 4 is: d