TO_NUMBER(string[, fmt[, ‘ nlsparams’]])
fmt是格式

解决方案 »

  1.   

    fmt[, ‘ nlsparams’]里面的参数是什么呢
      

  2.   

    要把一个字段转为数字该怎么写呢?比如字段名为TT,类型为VARCHAR2,内容是‘100’。SQL语句是怎么写的呢?
      

  3.   

    select to_number(a.tt) from tablename a where .....--当然了.如果该字段中包含了除数字以外的字符.则转换的过程中会出错,就要写函数来处理了.
      

  4.   

    这个参数比较多,你可以去看一下ORACLE的帮助,很多都和字符集有关系,一般情况下,你可以不用管的,直接TO_NUMBER('12.1')这样就可以了
      

  5.   

    select to_number(tt) from 表
      

  6.   

    例如 TO_NUMBER('1,123,123')这样会出错,就要用到fmt: TO_NUMBER('1,123,123','999,999,999') 就可以得到正确的数字了
      

  7.   

    select to_number(tt) from 表 不行啊!告诉我是无效数字,明明是数字啊
      

  8.   

    我试了,如果字段有空就会出“ORA-01722 无效数字”错误,如果字段都不为空就可以,是不是有这个限制啊
      

  9.   

    转帖:作者bzszp
    SQL> create or replace function f_str_or_num(str varchar2) return varchar2 is 
    2 v_num number; 
    3 v_return varchar2(60); 
    4 begin 
    5 v_num:=to_number(str); 
    6 v_return:=str||' is a number string!'; 
    7 return v_return; 
    8 exception when others then 
    9 v_return:=str||' is not a number string!'; 
    10 return v_return; 
    11 end f_str_or_num; 
    12 / Function created. SQL> select f_str_or_num('123.56') from dual; 
    F_STR_OR_NUM('123.56') 
    -------------------------------------------------------------------------------- 
    123.56 is a number string! SQL> select f_str_or_num('12aa.56') from dual; 
    F_STR_OR_NUM('12AA.56') 
    -------------------------------------------------------------------------------- 
    12aa.56 is not a number string! SQL>
      

  10.   

    呵呵,如何把null转换成数字是个值得研究的问题