游标
定义:标识结果集中数据行的一种容器(CURSOR),游标允许应用程序对查询语句返回的行结果集中的每一行进行相同或不同的操作,而不是一次对整个结果集进行同一种操作。实际上是一种能从包括多条数据记录的结果集中每次提取一条记录的机制。游标充当指针的作用,尽管游标能够遍历查询所有结果集的每一行,但是它一次只能指向一行。
类型:(1)隐式游标
(2)显示游标
结构:
1、声明游标 -- 用于存放一个结果集
2、声明该游标的游标变量
3、打开游标
4、将游标中的数据遍历到游标变量中
5、关闭游标
例1:显示游标中的所有信息
--声明游标
declare
--定义一个行类型变量存放游标行数据
mycs student%rowtype;
--声明一个游标
cursor mycursor is select * from student;
/*--声明一个该游标变量
mycursor mycs;
*/
begin
--打开游标
open mycursor;
--通过loop循环遍历整个游标
loop
--提取游标行数据
fetch mycursor into mycs;
--当游标遍历到没有行数的时候就结束游标遍历
exit when mycursor%NOTFOUND;
dbms_output.put_line('姓名:'||mycs.sname||'学号:'||mycs.sno);
end loop;
close mycursor;
end;
1、参数游标:声明带有参数的游标
cursor cursor_name(参数名 参数数据类型) is select ...from...where...
注意:必须在select 语句的where子句中引用游标参数,否则失去了定义参数游标的意义。
例1:使用参数游标获取部门为30的员工信息