数据表中有一列原为 number(9,2)的列,已经写有数据了;我调试时改成了number(38,19)了,导致0.01变成0.01000000000000....了,现在我想改回number(9,2),可是被提示数据列有已经有值,减少精度必须清空数据;想问下大家有没好的办法???

解决方案 »

  1.   

    嗯。建临时列。导入。。rename
      

  2.   

    update table
    set col2 = col1
    结果可能是
    col1                               col2
    0.01000000000000....               0.01000000000000....然后清空col1,改为number(9,2)
    但col2的数据再复制回来是
    0.01000000000000....
    还是
    0.01
    呢?
    我这里没有安装数据库
      

  3.   

    如果你使用的是ORACLE数据库,可以如下操作
    1、ALTER TABLE 表名 ADD (列名 数据类型|DEFAULT 默认值)/*增加一列,列名不要与需要修改的列的列名一样*/
    2、用UPDATE语句将正确的值写进去
    2、ALTER TABLE 表名 SET DROP COLUMN 原先需要改精度的列名 /*删除原先需要改精度的列*/
    4、重复上述的第1步,增加一列,只是这次列名用原来被删除列的列名
    5、重复第2步
    6、删除列名与修改前不一致的那一列。