当前位置: 代码迷 >> Oracle管理 >> 一个奇怪的有关问题 关于exception 的有关问题
  详细解决方案

一个奇怪的有关问题 关于exception 的有关问题

热度:137   发布时间:2016-04-24 04:09:35.0
一个奇怪的问题 关于exception 的问题
本帖最后由 abcf13579 于 2014-11-29 03:44:04 编辑
一个奇怪的问题,我写了这两种代码,

因为刚接触这语言
第一种比较简单粗暴 input 就是一个varray


FOR i in 1..INPUT.COUNT LOOP
         SELECT COUNT(*) INTO COMP FROM NAME_TABLE WHERE 编号 = INPUT(i);
       IF COMP != 0 THEN
   
        SELECT  X1 ,X2  INTO TEMP1,TEMP2 NAME_TABLE WHERE 编号 = INPUT(i);
    


          ect......


        END IF;
            
                        END LOOP;




接下来觉得这个太费劲了 就做了如下修改  就是加了个exception 




 FOR i in 1..INPUT.COUNT LOOP
      
       COMP:=0;
     BEGIN
        SELECT  X1 , X2  INTO TEMP1,TEMP2 FROM NAME_TABLE WHERE 编号 = INPUT(I);
   
       
      ect........
         
      EXCEPTION WHEN NO_DATA_FOUND THEN NULL;
            END;
                        END LOOP;





然后 我对比测试了同一种数据  方法一有时会会出问题 但没问题的时候输出的计算结果 和方法2是一样的 ,
然后所用的时间上 不管什么时候 方法2都比方法一要快,我觉得不是应该反过来么,各位能解释一下嘛?谢谢
------解决思路----------------------
如果十分关注消耗时间的问题,可以学些sql解析的知识
  相关解决方案