一、游标介绍
1、定义:“游标(Cursor)是处理数据的一种方法,为了查看或者处理结果集中的数据,游标提供了在结果集中一次一行或者多行前进或向后浏览数据的能力。基本信息把游标当作一个指针,它可以指定结果中的任何位置,然后允许用户对指定位置的数据进行处理。”
2、游标的分类:
3、静态与动态游标、以及显示与隐式游标的区别
静态游标 | 动态游标 |
结果集是不可变的 | 结果集可以改变 |
运行效率高于动态游标 |
显示游标 | 隐式游标 |
显示游标的结果集需要在DECLARE中声明 ,中途不能改变,需要打开和关闭 | 隐式游标的结果集,不用声明。游标也不用打开和关闭 |
二、静态游标
1、显示游标
(1)、不带参数的:
DECLARE
CURSOR CUR_NAME IS SELECT 语句;
.....
--打印dept的数据
DECLARE
CURSOR CUR_1 IS SELECT * FROM DEPT; --声明一个显示游标
V_D DEPT%ROWTYPE;
BEGIN
OPEN CUR_1; --开启游标
FETCH CUR_1 INTO V_D; --提取记录给变量
DBMS_OUTPUT.put_line(V_D.DEPTNO||' '||LOWER(V_D.DNAME)||' '||V_D.LOC);
CLOSE CUR_1; --游标使用完之后要关闭
end; --使用游标打印emp的数据
(2)、带参数的:
DECLARE
CURSOR CUR_2(参数名1 参数类型,参数2,参数类型) IS SELECT 语句
...
(3)、游标的四个属性:
CUR_NAME%ISOPEN 判断游标是否打开了(是,否)
CUR_NAME%FOUND 判断指针是否有新值(是,否)
CUR_NAME%NOTFOUND 判断指针是否没有值(是,否)
CUR_NAME%ROWCO