Oracle游标作用包括哪些,用法是怎样
导读:在这篇文章中我们会学习到关于“Oracle游标作用包括哪些,用法是怎样”的知识,小编觉得挺不错的,现在分享给大家,也给大家做个参考,希望对大家学习或工作能有帮助。下面就请大家跟着小编的思路一起来学习一下吧。...
在这篇文章中我们会学习到关于“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游标作用包括哪些,用法是怎样”的相关知识,感谢各位的阅读,想要掌握这篇文章的知识点还需要大家自己动手实践使用过才能领会,如果想了解更多相关内容的文章,欢迎关注网络,小编每天都会为大家更新不同的知识。
声明:本文内容由网友自发贡献,本站不承担相应法律责任。对本内容有异议或投诉,请联系2913721942#qq.com核实处理,我们将尽快回复您,谢谢合作!
若转载请注明出处: Oracle游标作用包括哪些,用法是怎样
本文地址: https://pptw.com/jishu/650131.html