Oracle中游标的使用
2012-04-06 21:40
471 查看
游标(CURSOR)
用来处理使用select语句从数据库中检索到的多行记录的工具
游标的分类
显示游标
返回多条记录时,使用显示游标逐行读取
隐式游标
PL/SQL自动为DML语句创建隐式游标,包含一条返回记录
游标的属性
%found 用于检验游标是否成功,通常在FETCH语句前使用,当游标按照条件查询出一条记录时,返回true
%isopen 判断游标是否处于打开状态,视图打开一个已经打开或者已经关闭的游标,将会出现错误
%notfound 与%found的作用相反,当按照条件无法查询到记录时,返回true
%rowcount 循环执行游标读取数据时,返回检索出的记录数据的行数
游标的声明
CURSOR cursor_name [ ( parameter [ , parameter]……)]
[ RETURN return_type ] IS selectsql
CURSOR:用于声明一个游标
parameter:可选参数,用于指定参数类型、模式等
return:可选,指定游标的返回类型
selectsql:需要处理的select语句,不能含INTO子句
打开游标
open cursor_name
提取游标
FETCH cursor_name INTO variable_list
使用FETCH语句实现对游标内容的读取
variable_list必须与从游标提取的结果集类型相同
关闭游标
close cursor_name
使用CLOSE语句关闭一个游标
关闭游标后,所有资源都将被释放,且不能再次被打开
例如下面是一个从游标中取出一条记录的例子
Declare
fname varchar2(20);
lname varchar2(20);
--声明一个游标
CURSOR c_student is
select firstname, LASTNAME
from students where id=1001 ;
BEGIN
--打开游标
OPEN c_student;
--判断游标是否返回记录
if c_student%NOTFOUND THEN
dbms_output.put_line('没有找到相应的记录');
else
--从游标中读取记录
fetch c_student into fname,lname;
dbms_output.put_line(fname||''||lname);
end if;
CLOSE c_student;
END;
那么如何取出所有的值呢?看一下下面的例子
Declare
fname varchar2(20);
lname varchar2(20);
CURSOR t_student is
select firstname, LASTNAME
from students where id<=1005 ;
BEGIN
for t_students IN t_student LOOP
fname:=t_students.firstname;
lname:=t_students.lastname;
dbms_output.put_line('学员姓名:'||fname||''||lname);
end LOOP;
end;
本文链接:http://www.snowdi.com/729.html → 转载请注明文章出自雪頔网
用来处理使用select语句从数据库中检索到的多行记录的工具
游标的分类
显示游标
返回多条记录时,使用显示游标逐行读取
隐式游标
PL/SQL自动为DML语句创建隐式游标,包含一条返回记录
游标的属性
%found 用于检验游标是否成功,通常在FETCH语句前使用,当游标按照条件查询出一条记录时,返回true
%isopen 判断游标是否处于打开状态,视图打开一个已经打开或者已经关闭的游标,将会出现错误
%notfound 与%found的作用相反,当按照条件无法查询到记录时,返回true
%rowcount 循环执行游标读取数据时,返回检索出的记录数据的行数
游标的声明
CURSOR cursor_name [ ( parameter [ , parameter]……)]
[ RETURN return_type ] IS selectsql
CURSOR:用于声明一个游标
parameter:可选参数,用于指定参数类型、模式等
return:可选,指定游标的返回类型
selectsql:需要处理的select语句,不能含INTO子句
打开游标
open cursor_name
提取游标
FETCH cursor_name INTO variable_list
使用FETCH语句实现对游标内容的读取
variable_list必须与从游标提取的结果集类型相同
关闭游标
close cursor_name
使用CLOSE语句关闭一个游标
关闭游标后,所有资源都将被释放,且不能再次被打开
例如下面是一个从游标中取出一条记录的例子
Declare
fname varchar2(20);
lname varchar2(20);
--声明一个游标
CURSOR c_student is
select firstname, LASTNAME
from students where id=1001 ;
BEGIN
--打开游标
OPEN c_student;
--判断游标是否返回记录
if c_student%NOTFOUND THEN
dbms_output.put_line('没有找到相应的记录');
else
--从游标中读取记录
fetch c_student into fname,lname;
dbms_output.put_line(fname||''||lname);
end if;
CLOSE c_student;
END;
那么如何取出所有的值呢?看一下下面的例子
Declare
fname varchar2(20);
lname varchar2(20);
CURSOR t_student is
select firstname, LASTNAME
from students where id<=1005 ;
BEGIN
for t_students IN t_student LOOP
fname:=t_students.firstname;
lname:=t_students.lastname;
dbms_output.put_line('学员姓名:'||fname||''||lname);
end LOOP;
end;
本文链接:http://www.snowdi.com/729.html → 转载请注明文章出自雪頔网
相关文章推荐
- Oracle 触发器中使用游标
- Oracle 游标使用总结
- 使用Oracle显式游标及for循环
- Oracle 游标使用详解
- oracle 存储过程之游标(loop)使用
- Oracle游标使用全解
- hibernate里使用jdbc方式调用oracle带游标返回参数的简单分页存储过程
- [精华] Oracle 游标使用大全
- Oracle 游标使用全解
- Oracle 游标使用全解
- Oracle 游标使用全解
- 数据库oracle--游标的使用
- oracle 游标使用
- Oracle 游标使用全解
- Oracle 游标使用全解
- Oracle 游标使用总结
- oracle中建表、游标、存储过程的使用方法入门
- (学)Oracle中不使用游标遍历数据
- ORACLE 通过游标使用来了解cursor 的好处!
- Oracle 游标使用整理