Oracle容易犯的错误和技巧集合

引言

     此文记录日常开发中容易遇到的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

Oracle容易犯的错误和技巧集合的相关文章

C#新手常犯的错误汇总

本文所述为C#新手常犯的错误,但是实际上很多有经验的程序员也经常犯这些错误,对此特别整理了一下,供大家参考.具体如下: 1.遍历List的错误 ,比如如下代码: List<String> strList =newList<String> for(int i =0; i<strList.Count; i++) { strList.RemoveAt(i); } 这段代码看上去是删除了所有元素,实际上每次调用RemoveAt方法会导致List元素索引重排,最后导致元素没有完全删除.

十个JAVA程序员容易犯的错误&#187;

十个JAVA程序员容易犯的错误 ▉1. Array 转 ArrayList 一般开发者喜欢用: List<String> list = Arrays.asList(arr); Arrays.asList() 会返回一个ArrayList,这是Arrays里内嵌的一个私有静态类,而并不是java.util.ArrayList 类java.util.Arrays.ArrayList 有set(), get(), contains()方法,但并支持添加元素,所以大小是固定的,想要创建一个真正的Arr

在CMMI推广过程中EPG常犯的错误(转)

本文转自: http://developer.51cto.com/art/200807/86953.htm 仅用于个人收藏,学习.如有转载,请联系原作者. ---------------------------------------------------------------------------------------------------------------------------- 1对模型研究不够深入 模型是多年软件工程经验的总结,里面的每一句话,每个例子都不是随便写上去的

代码整洁之道,新手常犯的错误。

工作几年来,见过很多糟糕的代码.It是人口流动性很大的行业,如果不注重质量,那就是无数个坑.当需求变动,去改一段很长很糟糕第n手的代码时,内心是崩溃的,这就是国内IT的现状.下面是几个写出优质代码的好习惯,大部分公司没有硬性要求,所以很多人常犯这些错误.     1.形参的命名和数量. 变量命名的好建议是可以读出来的,有具体含义的,而不是mcount,amerber这种缩写的. 形参的数量最多控制在四个,再多就需要建对象.  2.临时变量的命名和数量. 临时变量的命名很多人不注意,比如s1,st

Oracle登录时提示错误,导致用户无法登录

Oracle登录时提示错误,导致用户无法登录,错误如下 ------------------------------------------------------------------------- ORA-00604:递归SQL级别1出现错误 ORA-01653表SYS.AUD$无法通过1024(在表空间SYSTEM中扩展) ORA-02002:写入审计线索时出错 ORA-01653表SYS.AUD$无法通过1024(在表空间SYSTEM中扩展) ---------------------

对于过去所犯的错误,最好的道歉是在将来做正确的事

“Right actions for the future are the best apologies for wrong ones in the past.” — Tryon Edwards, Theologian 「对于过去所犯的错误,最好的道歉是在将来做正确的事.」 – 泰伦.爱德华兹 (神学家) “I try to do the right thing at the right time. They may just be little things, but usually they

网站移植到linux上后常犯的错误

常犯的错误 1:gcc库没装或者没装全 表现:没有可用的C编译器 同类错误:提示g++ not found, 解决:出现以上错误,则是因为gcc编译器没装,或者是没装全. 挂载光盘,到Pakeges里目录下去, 搜索gcc, 把相关的软件都装上. 在安装gcc的过程中,因为依赖性问题,在安装gcc之前 需要B->C->D软件 没有libppl*相关的软件,怎么办? 答:在光盘的packges里目录下,ls|grep ppl,找相关的软件装上. 2: 这类提示,缺少curses/tempcap库

JAVA中Long与Integer比较容易犯的错误

今天使用findbugs扫描项目后发现很多高危漏洞,其中非常常见的一个是比较两个Long或Integer时直接使用的==来比较. 其实这样是错误的. 因为Long与Ineger都是包装类型,是对象.  而不是普通类型long与int , 所以它们在比较时必须都应该用equals,或者先使用longValue()或intValue()方法来得到他们的基本类型的值然后使用==比较也是可以的. 但是有一种特殊情况, 其实Long与Integer都将 -128~127 这些对象缓存了.  可以看看Lon

标准动作中犯的错误,使用过程中忘记写结束符号所发生的错误

例如 错误写法: <jsp:getProperty property="userName" name="user" > 正确写法:<jsp:getProperty property="userName" name="user" /> 导致的异常: HTTP Status 500 - type Exception report message description The server encounte