oracle--游标

本文详细介绍了Oracle数据库中游标的概念及使用方法,包括显示游标和隐式游标的声明、打开、读取和关闭等步骤,并通过实例展示了如何利用游标进行数据处理。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

1 游标

显示游标:是有用户声明和操作的一种游标,通常用于查询结果集   步骤为:声明游标,打开游标,读取数据,关闭游标

隐式游标:sql语句执行时,oracle会自动创建一个隐式游标,这个游标是内存中处理该语句的工作区域,主要用于处理数据操纵语句如:update,delete语句

当然也可以用来select查询结果,在实际应用中,用来判断更新数据行数或删除行数

1.1    声明游标

cursor  cursor_name(输入参数1 ,输入参数2)(return  ret_type)

is select * from emp

 

cursor_name 游标名

输入参数为可选项,可多个

ret_type  返回值类型  可选

1.2  打开游标

open  cursor_name 参数

1.3  读取游标

fatch cursor_name  into variable

variable  变量,用来存储游标中的数据

1.4 关闭游标

close  cursor_name;

2  游标的属性

%found 布尔型的属性 如果sql影响到至少一行数据,该属性为true 否则为false

%notfound 布尔型属性 与%found属性相反

%rowcount 数字型属性 返回受sql影响的行数

%isopen 布尔型属性 判断游标是否打开,打开则为true 否则为false

 

应用:例如我需要给一个学校的所有院系和专业添加同一模块,手动点肯定又太慢了,所以直接后台操作

declare
cursor cur_test is                                --cur_test为游标名
select glyx, zydm from DM_XYZYB;    --这是我要查询的一张存储院系和专业的表     
begin
for c in cur_test loop    --遍历游标
insert into JW_JH_MKB
(MKDM,
NJ,
JHLX,
YXDM,
ZYDM,
ZYFX,
MKMC,
YQMS,
YQXF,
SFBX,
SFZYGCSMK,
KZFS)
values
(seq_jw_jh_mkb.nextval, 2014, '01',c.glyx,c.zydm,'0', '大学英语',
2, 4.0, 1, '0', '1');
end loop; --结束遍历,据说for循环结束遍历就直接关闭游标了,所以我没有关闭
commit; 提交

 

转载于:https://www.cnblogs.com/supermwb/p/9127021.html

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值