`

ORA-01722: 无效数字 -那些年踩过的坑

 
阅读更多

最近刚出现的一种情况,本来在开发环境中sql 都没有问题,结果在测试环境中却报出:ORA-01722: 无效数字 异常。同样的sql 只是环境不同,却一个正常一个报错。也是一顿纠结。后来查出是因为Where 条件后 “列名=数字” 造成的。 表中有一状态列 :state char(1),因为最开始时里面的值都是数字类型 所以sql 中直接写 state = 1. 这样查询没报错是因为 oracle 做了隐式转换。也就是T0_NUMBER(STATE)=1 这时当数据库中出现了如 a b c d 这些字符时,TO_NUMBER 就会触发ORA-01722 错误了。所以以后要做到在写sql语句时就得认真处理好不同类型的问题 用state = ‘1’

--------------------- 

作者:猕猴桃0303 

来源:CSDN 

原文:https://blog.csdn.net/leaf_0303/article/details/80365478 

版权声明:本文为博主原创文章,转载请附上博文链接!

分享到:
评论

相关推荐

Global site tag (gtag.js) - Google Analytics