首页数据库Oracle游标使用参考语句实例解析

Oracle游标使用参考语句实例解析

时间2024-02-28 15:08:04发布访客分类数据库浏览603
导读:收集整理的这篇文章主要介绍了Oracle游标使用参考语句实例解析,觉得挺不错的,现在分享给大家,也给大家做个参考。 游标是从表中检索出结果集,从中每次指向一条记录进行交互的机制。作用...
收集整理的这篇文章主要介绍了Oracle游标使用参考语句实例解析,觉得挺不错的,现在分享给大家,也给大家做个参考。

游标是从表中检索出结果集,从中每次指向一条记录进行交互的机制。

作用

  • 指定结果集中特定行的位置。@H_126_6@
  • 基于当前的结果集位置检索一行或连续的几行。
  • 在结果集的当前位置修改行中的数据。
  • 对其他用户所做的数据更改定义不同的敏感性级别。
  • 可以以编程的方式访问数据库。

一个简单实用:

Declare   -- 声明游标    Cursor Mycur Is     Select * From Emp;
       Empinfo Emp%RowtyPE;
       Cou   Number;
     Begin   -- 游标操作使用循环,但是在操作之前必须先将游标打开    For Empinfo In Mycur Loop     Cou := Mycur%rowcount;
         Dbms_Output.Put_Line('行号:' || Cou || '  雇员编号:' || Empinfo.Empno || '  雇员姓名:' || Empinfo.Ename);
       End Loop;
     End;
     

循环取出数据的两种写法:

Declare   -- 声明游标    Cursor Mycur Is     Select * From Emp;
     -- List (EmpPo)    Empinfo Emp%Rowtype;
       Cou   Number;
     Begin   -- 游标操作使用循环,但是在操作之前必须先将游标打开    If Mycur%Isopen Then     Null;
       Else     Open Mycur;
       End If;
       -- 使游标向下一行    Fetch Mycur     Into Empinfo;
       -- 判断此行是否有数据被发现    While (Mycur%Found) Loop     Cou := Mycur%Rowcount;
         Dbms_Output.Put_Line('行号:' || Cou || '  雇员编号:' || Empinfo.Empno || '  雇员姓名:' || Empinfo.Ename);
         -- 修改游标,继续向下      Fetch Mycur       Into Empinfo;
       End Loop;
     End;
     

第二种写法:

Declare   -- 声明游标   Cursor Mycur Is     Select * From Emp;
       Empinfo Emp%Rowtype;
       Cou   Number;
     Begin   -- 游标操作使用循环,但是在操作之前必须先将游标打开    If Mycur%Isopen Then     Null;
       Else     Open Mycur;
       End If;
       Loop     -- 使游标向下一行      Fetch Mycur       Into Empinfo;
         ExIT When Mycur%Notfound;
         Cou := Mycur%Rowcount;
         Dbms_Output.Put_Line('行号:' || Cou || '  雇员编号:' || Empinfo.Empno || '  雇员姓名:' || Empinfo.Ename);
       End Loop;
     End;
     

在存储过程中使用游标

Create Or Replace PRocedure Myproc(Oi_Return Out Integer) Is   Cursor Mycur Is     Select * From Emp_0915;
       Empinfo Emp_0915%Rowtype;
       Cou   Number;
       Exc_Return Exception;
     -- 程序中间返回自定义异常 Begin   If Mycur%Isopen Then     Null;
       Else     Open Mycur;
       End If;
       Loop     Fetch Mycur       Into Empinfo;
         Exit When Mycur%Notfound;
         Cou := Mycur%Rowcount;
         Dbms_Output.Put_Line(Cou || '开始更新...');
         Update Emp_0915 t Set t.Sal = t.Sal + 1 Where t.Empno = Empinfo.Empno;
         Dbms_Output.Put_Line(Cou || '更新结束...');
       End Loop;
       Commit;
       Oi_Return := 1;
     Exception   When Exc_Return Then     Rollback;
         Oi_Return := 0;
     End;
     

在oracle中测试:

Declare   Re Integer;
     Begin   Myproc(Re);
       If Re = 1 Then     Dbms_Output.Put_Line(Re || ':执行结束。。。');
       Else     Dbms_Output.Put_Line(Re || ':执行错误_______');
       End If;
     End;
     

以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持。

您可能感兴趣的文章:
  • 详解Oracle游标的简易用法
  • Oracle游标的使用实例详解
  • Oracle中游标Cursor基本用法详解
  • 详解Oracle隐式游标和显式游标
  • Oracle中的游标和函数详解
  • Oracle出现超出打开游标最大数的解决方法
  • Oracle显示游标的使用及游标for循环
  • Oracle存储过程返回游标实例详解
  • Oracle 游标使用总结
  • oracle 在一个存储过程中调用另一个返回游标的存储过程

声明:本文内容由网友自发贡献,本站不承担相应法律责任。对本内容有异议或投诉,请联系2913721942#qq.com核实处理,我们将尽快回复您,谢谢合作!


若转载请注明出处: Oracle游标使用参考语句实例解析
本文地址: https://pptw.com/jishu/631585.html
Oracle使用游标进行分批次更新数据的6种方式及速度比对 浅析Oracle体系结构

游客 回复需填写必要信息