游标 详解

一:概念

游标存放在内存而不是磁盘中,提高了数据的读取速度。游标从表中检出结果集,并每次仅指向一条进行交互处理。

二:使用场景

1.一般游标在存储过程中使用,相当于程序中对查询结果的for循环处理

2.现实中游标使用较少,游标会对行加锁,不利于多业务运行;因为游标存放在内存中,当数据量大时会造成内存不足,会拉高cpu

3.综上,游标适用于数据量较小的场景,或尽量避免使用

三:基础知识

1.静态游标:结果集已定义

①隐式游标:dml语句为隐式游标,通过游标属性或许sql信息,如:SQL%NOTFUOND

②显式游标:对查询语句建立一个游标,通过该游标属性遍历sql语句查询结果的信息

2.游标的属性

%notfound:fetch语句 判断最后一条记录 若true 则循环结束 

如: fetch cor into row     exit when cor%notfound;

%found: fetch语句获取记录的执行情况 

%isopen:游标是否打开

%rowcount:游标当前提取的行数

四:几个简单的例子

1.存储过程 for in

cursor  cor is select * from tb where ...;

row cor%rowtype;--定义一个游标变量,遍历cor里的数据

begin

for row in cor loop;

...

end loop;

end;


2.fetch游标 需要手动打开和关闭

cursor cor  is select * from tb where ...;

row cor%rowtype;

begin 

open cor;

loop

fetch cor into row;

exit when cor%notfound;

...

end loop;

end;


更多内容请跳转:

oracle游标使用全解

把游标说透

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 2
    评论
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值