频道栏目
首页 > 资讯 > 其他 > 正文

Oracle-ORA-01722 invalid number错误实时解决

18-08-01        来源:[db:作者]  
收藏   我要投稿

忽然有一天,好好的系统报错:ORA-01722 invalid number

环境:Oracle9 + JDBC访问数据库,之前是好的,忽然发现这个错误

后来参考了:http://davidyu720.itpub.net/post/31716/291191才知道缘由

1. 代码里面执行了如下SQL语句:

select mdn from tablename where mdn=13800000000

tablename表里面的mdn字段是varchar2()类型字段,由于Oracle的字段类型隐式转换功能

上面的SQL语句通常是可行的,查询的时候oracle解析该条件时,会首先to_number(mdn)

再和where mdn=13812345678进行比较判断,如果能够确保mdn字段里面存放的全为数字

那么这个语句是一直不会报错的(可能存在效率问题),但偏偏有人误操作在mdn里面加入了

几个字母133aa000000,如果还是上面的语句,并且表里面没有13800000000这个用户的数据,

当查询扫描到133aa000000时to_number(mdn)报错ORA-01722 invalid number

2. 因此写SQL语句的时候最好还是规规矩矩的写:

select mdn from tablename where mdn='13800000000'

什么问题都没有!

相关TAG标签
上一篇:adb通过wifi连接android设备教程
下一篇:Python中的多线程编程实例教程
相关文章
图文推荐

关于我们 | 联系我们 | 广告服务 | 投资合作 | 版权申明 | 在线帮助 | 网站地图 | 作品发布 | Vip技术培训 | 举报中心

版权所有: 红黑联盟--致力于做实用的IT技术学习网站