当前位置:网站首页 > 技术博客 > 正文

oracle的游标可以设多大



游标

  • SQL语言是面向集合的,是对指定列的操作。如果要对列中的指定行进行操作,就必须使用游标。
  • 当在PL/SQL块中执行查询语句(SELECT) 和数据操纵语句(DML) 时,Oracle会为其分配一个上下文区(Context Area)
  • 游标是指向上下文区的指针,它为应用提供了一种对具有多行数据查询结果集中的每一行数据分别进行单独处理的方法

显式游标

游标分为显式游标和隐含游标两种

  • 隐含游标用于处理SELECT INTO和DML语句
  • 显式游标则用于处理S ELECT语句返回的多行数据
  1. 使用显式游标

定义游标

CURSOR cursor_ name IS select statement;

打开游标

OPEN cursor name;

提取数据

FETCH cursor_name INTO variable1,variable...;

FETCH cursor_name bulk collect into collect1..;

关闭游标
CLOSE cursor name;

代码:

显示游标属性

显式游标属性用于返回显式游标的执行信息

  • 游标属性使用格式为: 游标名+ 属性名
  • %ISOPEN

    用于确定游标是否已经打开。如果游标已经打开,则返回值为TRUE; 否则返回FALSE

  • %FOUND

    检查是否从结果集中提取到数据。如果提取到数据,则返回值为TRUE; 否则返回FALSE

  • %NOTFOUND

    与%FOUND属性恰好相反,如果提取到数据,则返回值为FALSE; 否则返回TRUE

  • %ROWCOUNT

    返回到当前行为止已经提取到的实际行数

参数游标

参数游标是指带有参数的游标。在定义了参数游标之后,使用不同参数值多次打开游标可以生成不同的结果集。

代码:

游标for循环

游标for循环是在pl/sql块中使用游标的最简单方式,它可以简化对游标的处理。当使用游标for循环时,oracle会隐含的打开游标,提取游标数据并关闭游标。

代码:

上面代码中无须进行取值和关闭的操作,游标for循环可以自己进行。

下面还有一个更为简单的游标for循环,参考上面的代码进行读阅:

使用游标变量

代码实例:

隐含游标

作用:用属性进行一些判断(一种判断方式)

含义:当执行一条DML语句或者SELECT...INTO语句时,都会创建一个隐含游标。

隐含游标的名称是SQL,不能对SQL游标显示执行OPEN、FETCH和CLOSE语句。

Oracle隐式地打开、提取,并总是自动地关闭SQL游标。

属性

  1. SQL%FOUND:只有DML语句影响一行或多行时,SQL%FOUND属性才返回true。
  2. SQL%NOTDOUND:如果DNL语句没有影响行数,此属性将返回false。
  3. SQL%ROWCOUNT:返回DML影响的行数,如果DML语句没有影响行则返回0.
  4. SQL%ISOPEN:此属性用于判断SQL游标是否已经打开。在执行SQL语句之后,Oracle自动关闭SQL游标,所以隐含游标的SQL%ISOPEN属性始终为false。

简单示例1:

示例2:

  • 上一篇: java如何写单元测试
  • 下一篇: awr软件安装
  • 版权声明


    相关文章:

  • java如何写单元测试2025-05-02 07:30:05
  • v4l2架构2025-05-02 07:30:05
  • 用python解析xml的几种方法2025-05-02 07:30:05
  • mysql版本选择2025-05-02 07:30:05
  • 电脑如何阅读epub2025-05-02 07:30:05
  • awr软件安装2025-05-02 07:30:05
  • 单片机能用vc编程吗2025-05-02 07:30:05
  • c语言指针详解通俗易懂2025-05-02 07:30:05
  • rsa的加密原理2025-05-02 07:30:05
  • iic的通信协议2025-05-02 07:30:05