一个奇怪的问题,我写了这两种代码,
因为刚接触这语言
第一种比较简单粗暴 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解析的知识