alter table your_table 字段1 number(11,2);
若a全为数字型字符,
insert into your_table 字段1 values to_number(a,'999999999.99');

解决方案 »

  1.   

    alter table your_table 字段1 number(15,2);
    若a全为数字型字符,
    insert into your_table 字段1 values to_number(a,'999999999.99');
      

  2.   

    楼上的,谢谢阿~
    照你的方法,我将 TO_NUMBER 放到 INSERT 中去就成功了~
    但是不明白为什么:先转换、再INSERT 会总是报类型、精度错误~
      

  3.   

    改为X := to_number((substr(txtrecord,65,11)),'99999999999')/100;
      

  4.   

    我又发现问题了~字符串:A := 00000004013
    insert into table 字段1 values to_number(A,'999999999.99');insert 成功了~但是字段内容却是:4013
    而不是我想要的:40.13
      

  5.   

    楼上的我试过了~把字符串:A := 00000004013 
                             1.去零
                             2.右截2位作为小数位
                             3.截取剩余的作为整数位
                             4.TO_NUMBER := '小数位' || ‘整数位’;
    这样做我的确可以得到我要的结果~但是语句太繁了~
    有没有更简单的。
      

  6.   

    添加一个新的情况:如果字符串:A := 00000000000
    那么按照上面的做法就会报错~
    大概因为 ‘.00’不能 TO_NUMBER 吧~各位帮帮忙啊~
      

  7.   

    为什么不采用lisz()的 X := to_number((substrtxtrecord,65,11)),'99999999999')/100 ?
    或者就像beckhambobo说得把字段修改为字符型,会省掉不少麻烦。
      

  8.   

    round(to_number('str')/100,2)四舍五入
    trunc(to_number('str')/100,2)去尾
    floor
    ceil等