有一张ORACLE表
其中有数列的格式是decimal(8,3)格式的,里面都有数据,现在要求改成decimal(6,3)格式的请求 SQL CODE
 
有什么方法能比较方便快捷的实现吗 用oracle的OEMC直接更改提示 :要减小精度或标度,则要修改的列必须为空。但是 数据都是公司有用的数据,现在请求SQL CODE谢谢
附加:decimal(8,3) 表示 数据长度是8位,精度是3位,但这个8位包不包括小数点呢 (去了几个论坛 得到的答案都不一样 郁闷ing。。)

解决方案 »

  1.   

    decimal(8,3) 是number型的子集number(8,3)表示共8位数,其中小数位3位
    NUMBER型最大38位数
      

  2.   

    这个8位是包含小数位的。oracle中number(p,s)其中p为精度,或总位数。s是小数位,即小数点右边的位数。decimal(8,3)标识小数点左边的位数为5位,右边的为3位,如果小数点右边的位数超出了,oracle会自动四舍五入。
    oracle中,如果表中有数据,你是不能把大的往小的改的,有个办法就是一楼说的“创建个新表字段类型为你需要的类型。然后再导入你原表数据。 
    再删除原表,改目标表名为原表名”。