一张表的某个字段是number(20,8)类型的,在写insert脚本是向这个字段插入"123369999998.23",结果在查询时,显示值是"123369999998.22999600",无论插入值是数字型的123369999998.23、"123369999998.23"、123369999998.23000000、"123369999998.23000000",结果都一样,是"123369999998.22999600"。请问有什么解决办法吗?number 保存不一致

解决方案 »

  1.   

    是PL/sql显示转换有问题,Oracle本身储存没有问题,用plsql查看时,把number转换成字符返回来就不会有问题。或者用Oracle自带的Oracle SQL Developer工具查看也不会有问题。plsql查看时,用select to_char(column1),* from table结果显示不会有问题。
      

  2.   

    你把number(20,8)改成number(20,2)试试
      

  3.   

    SQL> create table test2(id number(20,8));表已创建。SQL> insert into test2 select 123369999998.23 from dual;已创建 1 行。SQL> select * from test2;        ID
    ----------
    1.2337E+11SQL> select to_char(id) from test2;TO_CHAR(ID)
    ----------------------------------------
    123369999998.23--显示不准确,应该是工具的显示问题
      

  4.   

    SQL> select id from test2;        ID
    ----------
    1.2337E+11SQL> col id format 9999999999999999.99999999
    SQL> select id from test2;                        ID
    --------------------------
         123369999998.23000000