这两天在做项目时,频频出现:ORA-01401: 插入的值对于列过大的异常,根据经验,我以为是数据为空造成的结果,调了好长时间,仍没有结果,浪费了不少时间,后来才发现,原来是插入的数值和数据库钟表字段的定义的问题。以前的系统默认日期为10位长,现在突然修改成了8位,结果就出问题了。同时,还有一个异常:ORA-01438: 值大于此列指定的允许精确度。这个同样是因为表字段的属性修改了的缘故,以前是
numeric(8,4),现在是numeric(4,3),肯定要出问题了。只怪自己不细心阿,其实文档里也挺全的,但是就没看,看了也没在意,一切还是按照以前的习惯,真是坏习惯害死人阿,特写此以警示!
总结一下,我碰到过的情况:
1。插入的值对于列过大的异常:暂时有两种可能,一是数值为空(null),结果插入时就会抛此异常, 二是因为插入的数值超出了表字段定义的范围,如上。
2。值大于此列指定的允许精确度:主要是因为插入的数值超出了表字段定义的范围,同上。
以后再碰到其它情况就慢慢补充了!