游标

发布时间 2023-09-24 22:18:40作者: 百里浅暮

什么是游标

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

游标的类型

Oracle中游标的类型可以分为静态游标和REF游标,其中静态游标有可以分为隐式游标和现实游标。

  • 静态游标:结果集已经确实(静态定义)的游标。
    • 隐式游标:指的是Oracle自己管理的游标,开发者不能自己控制操作,只能获得它的属性信息。
    • 显示游标:指的是游标使用之前必须得先声明定义,一般是对查询语句的结果集进行定义游标,然后通过打开游标循环获取结果集内的记录,或者可以根据业务需求跳出循环结束游标的获取。循环完成后,可以通过关闭游标,结果集就不能再获取了。全部操作完全由开发者自己编写完成,自己控制。从现实游标的描述可以看出来,它可以用来处理多行数据。
  • REF游标:引用游标,特点是不依赖指定的查询语句,可以在使用时关联不同的查询语句,分为强游标和弱游标两类。

游标的属性

游标的属性是通过‘百分号+函数名’的格式来获取的,常见属性如下:

  • %isopen :游标是否已经是打开状态,值是true或false。
  • %found :当前游标是否能提取出数据,值是true或false。
  • %notfound :和%found相反,表示当前游标是否不能提取出数据(也就是说最后一行数据是否已提取出),值是true或false。
  • %rowcount:当前游标提取的行数,会随着每次fetch而累加(参考显示游标用法中的示例)。

隐式游标的用法

在我们执行insert、update、delete和select…into…的操作中,使用的就是隐式游标。

select…into…