`
newleague
  • 浏览: 1492751 次
  • 性别: Icon_minigender_1
  • 来自: 深圳
社区版块
存档分类

Oracle中的游标操作

阅读更多
游标是Oracle系统在内存中开辟的一个工作区,在其中存放SELECT语句返回的查询结果
<1>游标操作的过程
   (1) 定义游标
(2)打开游标
(3)游标的操作(移动,读取数据)
(4)关闭游标
注释:-- 游标的定义格式:cursor cusor_name is select语句
      -- 游标的打开: open 游标名
      -- 游标读取数据: fetch 游标名 into 变量1,变量2……(这里可以是普通变量,也可以是记录类型的变量)
      -- 关闭游标:   close 游标名
      --游标只能向后移动,不能返回。
<2>游标操作举例
   Declare
      Row person%rowtype;--定义了一个记录类型的变量
      Increment number(4);--定义了一个普通变量
      Cursor cursor_person is select * from person; -定义游标变量
      I number(2);--定义普通变量
   Begin
      Select count(*) into I from person;--i变量保存person表中的记录总数
      Open cursor_person;        ----打开游标
      Loop
         Fetch cursor_person into row;      ----取出游标中的数据放到记录类型的变量中
         If row.id=2 then
           Increment:=1;
         Elseif row.id=3 then
           Increment:=2;
         End if;
         Update person set age=age+ Increment where name=row.name;
         I:=i-1;
         Exit when i=0;
     End loop;
     Close cursor_person;        ----关闭游标   
     End;
     /
     注解:将表中号码是2的人年龄加1,号码是3的人年龄加2.
   <3>游标的属性:
      ----%ISOPEN:该属性判断游标是否已经打开,若已经打开,则返回值值true,否则返回false
      ------%FOUND若最近一次fetch操作结果存在,那么就返回true
      ------%NOTFOUND同%FOUND相反
      ------%ROWCOUNT返回游标操作过的记录总数
   上面的举例可以改写为:

     Declare
      Row person%rowtype;--定义了一个记录类型的变量
      Increment number(4);--定义了一个普通变量
      Cursor cursor_person is select * from person; -定义游标变量
   Begin
      Open cursor_person;        ----打开游标
      Loop
         Fetch cursor_person into row;      ----取出游标中的数据放到记录类型的变量中
         Exit when cursor_person%NOTFOUND;
         If row.id=2 then
           Increment:=1;
         Elseif row.id=3 then
           Increment:=2;
         End if;
         Update person set age=age+ Increment where name=row.name;
     End loop;
     Close cursor_person;        ----关闭游标   
     End;
     /
    <4>for循环在游标操作中的应用
       基本格式:
         For 变量名(此变量名无需定义) in 游标名 loop
               循环体部分
         End loop;
       说明:for循环会自动的打开和关闭游标
       下面是上例子在for循环中的使用情况:
   Declare
      Increment number(4);--定义了一个普通变量
      Cursor cursor_person is select * from person; -定义游标变量
   Begin
      For row in cursor_person loop
         If row.id=2 then
           Increment:=1;
         Elseif row.id=3 then
           Increment:=2;
         End if;
         Update person set age=age+ Increment where name=row.name;
     End loop;       ----关闭游标   
     End;
     /
  <5>带参数的游标操作
     定义的格式:
     Cursor cursor_name(variable1 type, variable2 type …………….) is selectStatement
分享到:
评论

相关推荐

    Oracle 数据库游标使用大全

    在处理游标时,事务控制语句如COMMIT和ROLLBACK用于保存或回滚游标操作对数据库的影响。COMMIT提交事务,使更改永久化;ROLLBACK则撤销所有未提交的更改。 7. **显式游标与隐式游标** 显式游标允许更精细的控制,...

    oracle 隐式游标,显示游标,游标循环

    ### Oracle中的游标详解 #### 一、引言 在Oracle数据库中,游标是一种非常重要的机制,它允许用户在程序中对查询结果进行逐行处理。游标分为两种主要类型:**隐式游标**和**显示游标**。此外,还可以利用游标进行...

    oracle数据库游标使用例子

    Oracle数据库中的游标是PL/...总之,Oracle游标提供了一种灵活的方式来处理SQL查询的结果,允许程序逐行操作数据,这在处理复杂业务逻辑和事务时尤为有用。理解并熟练掌握游标的使用,能够提高数据库应用的效率和性能。

    oracle游标的总结oracle游标的总结

    Oracle 游标是 Oracle 数据库中的一种重要概念,用于查询数据库,获取记录集合(结果集)的指针。游标可以看作是一个临时表,你可以对其每一行的数据进行任意的操作。本文将对 Oracle 游标的概念、分类、声明方式、...

    Oracle数据库游标使用.rar

    Oracle数据库游标是数据库编程中的一个重要概念,尤其在处理大量数据时,它们提供了一种有效且灵活的方法。游标允许程序逐行访问查询结果集,而不是一次性加载所有数据。这在处理复杂的数据操作,如循环处理、条件...

    Oracle的游标学习

    Oracle的游标是数据库开发中的一个重要概念,尤其在PL/SQL编程中,游标用于处理SQL查询结果集,使得我们能够逐行处理数据,而不仅仅局限于一次性获取所有数据。在这个主题中,我们将深入探讨游标的定义、类型、使用...

    oracle数据库的游标

    在异常处理方面,游标操作可能引发的异常需要通过异常处理语句进行捕获和处理,例如使用EXCEPTION WHEN ... THEN ... END;的结构。异常处理是确保数据库操作稳定性和健壮性的重要部分。自定义异常是开发者根据实际...

    oracle函数触发器游标等几个小例子

    在`oracle游标.txt`中,你可以学习到如何声明、打开、读取和关闭游标。游标在处理大量数据时非常有用,特别是在需要逐行处理或循环遍历结果集的情况下。例如,如果你需要更新数据库中满足特定条件的所有行,游标将是...

    ORACLE 游标使用示例

    在"游标.txt"文件中,可能包含了更多关于Oracle游标的使用实例和技巧,包括游标的声明、动态游标、游标变量、游标表达式以及游标在存储过程和函数中的应用。这些内容可以帮助你更深入地理解和掌握Oracle游标,提高你...

    oracle-游标使用汇总.doc

    总之,Oracle数据库中的游标提供了灵活的数据处理能力,尤其是在需要逐行操作查询结果的情况下。通过显式游标,我们可以控制查询的执行流程,确保数据处理的精确性和效率。正确理解和使用游标是开发高效PL/SQL程序的...

    Oracle数据库游标使用大全

    Oracle数据库游标是PL/SQL编程中不可或缺的一部分,它们允许程序逐行处理查询结果,提供了更灵活的数据操作方式。在Oracle数据库中,游标主要分为两种类型:隐式游标和显式游标。 1. **隐式游标**: - 当在PL/SQL...

    非常详细的Oracle游标整理

    4. **游标在DML操作中的应用**: - 如果需要在游标内部进行DML操作,可以使用`for update`子句来锁定查询到的行。这在多用户环境中的并发控制中非常有用,确保了数据的一致性。 5. **有参显式游标**: - 显式游标...

    Oracle游标使用案例大全

    Oracle游标是数据库编程中非常重要的一个概念,主要用于处理SQL查询的结果集。游标允许我们按行处理数据,逐条读取结果集,而不仅仅是一次性获取所有数据。在Oracle数据库中,游标对于复杂的事务处理、动态SQL以及...

    Oracle入门--Oracle游标使用

    Oracle游标是PL/SQL编程中的重要组成部分,主要用于处理单行或多行查询结果。游标允许程序员逐行处理查询结果,而不是一次性加载所有数据。在Oracle中,游标分为显式游标和隐式游标。 1. **隐式游标**:在PL/SQL中...

    ORACLE中的游标汇总

    游标在ORACLE数据库中是处理SQL查询结果集的关键工具,它允许程序员逐行处理查询结果,而不是一次性加载所有数据。游标对于处理大量数据或需要分步处理数据的复杂业务逻辑尤其有用。 1. 静态游标 - **显式游标**:...

    Oracle 游标使用大全

    - 避免在循环中打开和关闭游标,尽可能减少游标操作次数。 - 选择合适的游标类型,隐式游标适用于简单操作,显式游标适合复杂情况。 以上只是对Oracle游标使用的一个简要概述,具体到《Oracle 游标使用大全》这份...

    oracle游标学习资料

    Oracle游标是数据库编程中非常重要的一个概念,它允许开发者逐行处理查询结果集,而不仅仅是一次性处理所有数据。在Oracle中,游标分为隐式游标和显式游标。 **一、游标简介** 游标的核心功能是提供一种方式来遍历...

    Oracle 游标使用大全.pdf

    通过本篇Oracle游标的使用大全,我们可以了解到Oracle数据库游标的类型、属性以及如何在PL/SQL中实现对数据集的逐行处理。这不仅有助于提升程序员的编程技能,也能使他们更深入地理解PL/SQL与Oracle数据库之间的交互...

Global site tag (gtag.js) - Google Analytics