Oracle游标的创建和使用

一.游标简介

Oracle游标是通过关键字CURSOR的来定义一组Oracle查询出来的数据集,类似数组一样,把查询的数据集存储在内存当中,然后通过游标指向其中一条记录,通过循环游标达到循环数据集的目的

二.游标的分类

1.显示游标
指的是游标使用之前必须得先声明定义,一般是对查询语句的结果事进行定义游标,然后通过打开游标循环获取结果集内的记录,或者可以根据业务需求跳出循环结束游标的获取。循环完成后,可以通过关闭游标,结果集就不能再获取了。全部操作完全由开发者自己编写完成,自己控制。
2.隐式游标
指的是PL/SQL自己管理的游标,开发者不能自己控制操作,只能获得它的属性信息。
在 PL/SQL 中使用 DML 和 select into时,会 自动 创建隐式游标,隐式游标自动声明、打开和关闭,其名为 SQL(无需人为关闭和开启)

三.游标常用属性

1.判断游标是否开启
SQL%ISOPEN
2.判断前一个fetch是否有值
SQL%FOUND
3.判断前一个fetch是否无值
SQL%NOTFOUND
4.当前成功执行的数据行数
SQL%ROWCOUNT
5.获取字段类型
SQL%TYPE
6.获取表所有字段类型
SQL%ROWTYPE

四.常见实例

--1.利用游标依次输出table_A表中的item_A字段
declare

--声明游标
cursor itema is
select item_a from table_a;

--声明变量
a table_a.item_a%type;

begin

--打开游标
open itema;

--循环
loop
--移动指针获取游标中值到变量
fetch itema into a;
--如果当前游标为空则结束循环
exit when itema%noufound;

--获取变量进行逻辑处理
dbms_output.put_line(a);

--循环结束
end loop;

--关闭游标
close itema;
end;

--2.利用游标依次输出table_A表中的item_A字段和item_B字段
declare

--声明游标
cursor tb_a is
select * from table_a;

--声明变量
a table_a%rowtype;

begin

--打开游标
open tb_a;

--循环
loop
--移动指针获取游标中值到变量
fetch tb_a into a;
--如果当前游标为空则结束循环
exit when tb_a%noufound;

--获取变量进行逻辑处理
dbms_output.put_line(a.item_a);
dbms_output.put_line(a.item_b);

--循环结束
end loop;

--关闭游标
close tb_a;
end;

发表评论

电子邮件地址不会被公开。 必填项已用*标注

4 + 4 =