引言
此文记录日常开发中容易遇到的oracle编程误区和一些使用技巧,不定期更新.
1.sum(),max(),min(),avg()等函数会得到null值
declare n_num number(5):=‘‘; begin select sum(1) into n_num from dual where 1=2 ; n_num:= n_num+2; dbms_output.put_line(n_num); end;
上面代码描述了我们日常开发的一个场景,将某个表的数据求和,然后再各种计算.正常情况是没有问题的,但是求和表没有数据的,我们就会得到一个空值,然后导致后面的一系列计算都是空值,
造成业务误差.
处理办法:加上nvl()函数处理这种异常,如下:
declare n_num number(5):=‘‘; begin select nvl(sum(1),0) into n_num from dual where 1=2 ; n_num:= n_num+2; dbms_output.put_line(n_num); end;
时间: 2024-10-18 05:49:50