非常简单的一个查询语句,目的想实现字段dd减一的操作。
table:t_sss
字段:dd varchar2(4)查询语句:
select to_number(dd)
from t_sss;
运行时报错:ORA:01722 invalid number
请大家给点意见!谢谢!

解决方案 »

  1.   

    dd字段是varchar类型,也就是说有些数据不能转换为number
      

  2.   

    看这里http://fronkx.blog.hexun.com/17331585_d.html
      

  3.   

    可以用TRANSLATE判断是否为number
      

  4.   

    用to_number 转换的必须是数字字符,否则会出错
      

  5.   

    select to_number(replace('a0001','a000')) from dual
    可以用这种方法来转换!
      

  6.   

    SELECT TRANSLATE
                ('asadsad12r4',
                 '1234567890abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ',
                 '1234567890'
                )
      FROM DUAL
    结果
    124
      

  7.   

    10G可以用正则表达式SELECT REGEXP_REPLACE ('abcd123r4','[^0-9]','')
      FROM DUAL
    结果
    1234
      

  8.   

    一直是错误:ORA:01722 invalid number
    希望大家能够把你们遇到的同类问题给点提示。