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

     使用Oracle时,在测试环境中却报出:ORA-01722: 无效数字 异常

     检查了一遍sql语句也没发现什么问题。后来查出是因为Where 条件后 “列名=数字” 造成的。

表中有一列 :district_code 字段类型是 VARCHAR2(20),因为最开始时里面的值都是数字类型 所以sql 中直接写 district_code =330400. 这样查询没报错是因为 oracle 做了隐式转换。也就是T0_NUMBER(district_code )=330400 ,

   这时当数据库中出现了如 a b c d 这些字符时,TO_NUMBER 就会触发ORA-01722 错误了。所以以后要做到在写sql语句时就得认真处理好不同类型的问题 用单引号把值给套上district_code ='330400'

你可能感兴趣的:(Oracle,工作)