我是靠谱客的博主 悲凉小霸王,最近开发中收集的这篇文章主要介绍ORACLE游标循环,觉得挺不错的,现在分享给大家,希望可以做个参考。

概述

为什么80%的码农都做不了架构师?>>>   hot3.png

ORACLE游标循环有几种用法,下面分别介绍一下。

首先定义游标和变量 

CURSOR C1 IS SELECT  eNAME,ejob FROM emp WHERE deptno=10;

v_NAME VARCHAR2(10);

v_job VARCHAR2(10);

第一种:使用loop 循环
          open c1;
      loop    
   fetch c1  into v_name,v_job ;    
  exit when c1%notfound;    
    ……   
end loop  
colse c1;
这里需要注意,exit when语句一定要紧跟在fetch之后。必避免多余的数据处理。
而且处理逻辑需要跟在exit when之后。
循环结束后要记得关闭游标。


第二种:使用while循环。

            open c1;

  fetch c1  into v_name,v_job;   
  while c1%found loop    
    ……    
      fetch c1 into v_name,v_job;    
     end loop;  
close c1;

注意 这里用到了两个fetch语句!

第一个fetch语句是把游标的第一行记录赋值给相关变量,第二个fetch语句是让游标指向下一条记录。

如果没有第二个语句的话,即为死循环,不停地执行loop内的代码。

总之,使用while来循环处理游标是最复杂的方法。


第三种: for循环

          for v_pos in c1 loop   
   v_name:= v_pos.ename;   
02.    v_job:= v_pos.ejob;   
03.    …   
04.end loop;  
可见for循环是比较简单实用的方法。
首先,它会自动open和close游标。解决了你忘记打开或关闭游标的烦恼。
其它,自动定义了一个记录类型及声明该类型的变量,并自动fetch数据到这个变量中。
我们需要注意v_pos 这个变量无需要在循环外进行声明,无需要为其指定数据类型。
它应该是一个记录类型,具体的结构是由游标决定的。
这个变量的作用域仅仅是在循环体内。
把v_pos看作一个记录变量就可以了,如果要获得某一个值就像调用记录一样就可以了。
如v_pos.pos_type
由此可见,for循环是用来循环游标的最好方法。高效,简洁,安全。

转载于:https://my.oschina.net/luqin/blog/397999

最后

以上就是悲凉小霸王为你收集整理的ORACLE游标循环的全部内容,希望文章能够帮你解决ORACLE游标循环所遇到的程序开发问题。

如果觉得靠谱客网站的内容还不错,欢迎将靠谱客网站推荐给程序员好友。

本图文内容来源于网友提供,作为学习参考使用,或来自网络收集整理,版权属于原作者所有。
点赞(40)

评论列表共有 0 条评论

立即
投稿
返回
顶部