INVLID PROFILE numb linkin park...

2288人阅读
这个错误发生在使用JRE版本为jdk1.6.0_07& 和1.6.0时,更新为jdk1.6.0_22后就没有问题了。
参考知识库
* 以上用户言论只代表其个人观点,不代表CSDN网站的观点或立场
访问:345557次
积分:4814
积分:4814
排名:第3869名
原创:134篇
转载:64篇
评论:26条
(1)(1)(3)(1)(1)(2)(1)(8)(1)(1)(4)(4)(4)(1)(1)(2)(1)(4)(1)(8)(3)(3)(5)(2)(1)(2)(3)(2)(1)(3)(12)(2)(1)(2)(2)(6)(3)(8)(12)(5)(5)(1)(4)(2)(2)(2)(1)(2)(2)(4)(1)(3)(2)(1)(4)(5)(1)(2)(2)(6)(9)(10)&&&&&&&&&&&&&&&&&&
posts - 498,comments - 348,trackbacks - 11
忽然有一天,好好的系统报错:ORA-01722 invalid number
环境:Oracle9 + JDBC访问数据库,之前是好的,忽然发现这个错误
后来参考了:&才知道缘由
1. 代码里面执行了如下SQL语句:
&&select mdn from tablename where mdn=
&& tablename表里面的mdn字段是varchar2()类型字段,由于Oracle的字段类型隐式转换功能
& &上面的SQL语句通常是可行的,查询的时候oracle解析该条件时,会首先to_number(mdn)
&& 再和where mdn=进行比较判断,如果能够确保mdn字段里面存放的全为数字
&& 那么这个语句是一直不会报错的(可能存在效率问题),但偏偏有人误操作在mdn里面加入了
&& 几个字母133aa000000,如果还是上面的语句,并且表里面没有这个用户的数据,
&& 当查询扫描到133aa000000时to_number(mdn)报错ORA-01722 invalid number
2. 因此写SQL语句的时候最好还是规规矩矩的写:
&&& select mdn from tablename where mdn=''
&&& 什么问题都没有!
阅读(...) 评论()}

我要回帖

更多关于 ultranumb 的文章

更多推荐

版权声明:文章内容来源于网络,版权归原作者所有,如有侵权请点击这里与我们联系,我们将及时删除。

点击添加站长微信