对于NUMBER的字段,当数据大于15位如100000000000000这样的数据ORACLE就用科学技术法来存储了,请教对于NUMBER类型的字段怎样才可以不使用科学计数法存放大于15位的数据? 超过15位,精度好像就丢失了,请问怎么解决?

解决方案 »

  1.   

    上面的兄弟能不能再说清楚点,要怎么做呀?我对oracle也不太熟悉
      

  2.   

    在SQLPLUS下执行SET NUMWIDTH 38
    SQL> SET NUMWIDTH 38
    SQL> SELECT 10000000000000000000000 FROM DUAL;               10000000000000000000000
    --------------------------------------
                   10000000000000000000000
    SQL> SET NUMWIDTH 10
    SQL> SELECT 100000000000 FROM DUAL;100000000000
    ------------
      1.0000E+11
      

  3.   

    谢谢上面的回复,但是为什么我在 pl/sql里面执行SET NUMWIDTH 38报错呢? 好像还是不行?
      

  4.   

    是不是number的整数 精度只能到 10的15次方?如果超过 15位后面就会补0?
      

  5.   

    三楼love_2008(love2008)   的方法仅仅是在输出流改变,楼主的问题好像是要在存储的时候学习ing……
      

  6.   

    不好意思,三楼love_2008(love2008) 的方法可行其实存储的时候存入的是用户输入的精度,只是在输出的时候按照科学计数法显示的
      

  7.   

    怎么plsql和slqplus里面查询的结果不一样,是怎么回事呀?