• 企业400电话
  • 微网小程序
  • AI电话机器人
  • 电商代运营
  • 全 部 栏 目

    企业400电话 网络优化推广 AI电话机器人 呼叫中心 网站建设 商标✡知产 微网小程序 电商运营 彩铃•短信 增值拓展业务
    Oracle游标使用参考语句实例解析

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

    作用

    一个简单实用:

    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 在一个存储过程中调用另一个返回游标的存储过程
    上一篇:Oracle使用游标进行分批次更新数据的6种方式及速度比对
    下一篇:解决pl/sql developer中数据库插入数据乱码问题(SSM项目开发)
  • 相关文章
  • 

    © 2016-2020 巨人网络通讯 版权所有

    《增值电信业务经营许可证》 苏ICP备15040257号-8

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