日期:2014-05-17  浏览次数:20776 次

oracle修改已有数据的列类型
比如现在有列:fee   number(19,4); 目前是有值的。
现在要改成:fee number(19,6);

知道怎么弄的兄弟麻烦帮个忙。。注意前提是 目前这列fee是有值的。

------解决方案--------------------
把这列和主键用CREATE TABLE AS 的方式插入到一个新的表中。
然后删除这个列,再创建这个列,并把上面表的值重新更新过去。我一般是这样操作的。
------解决方案--------------------
这相当于缩小了字段的精度,所以在有数据的情况下是会报错的。
如果非要这么做,可以
1、首先增加一列,名字随便取,类型定义为需要的类型。
2、更新该列的值为旧列的值。
3、删除旧列
4、将新列更名为旧列名
------解决方案--------------------
额,,我肿么木想到呢,脑袋短路了。
------解决方案--------------------
举个例子,修改col的字段类型,前提是该列值必须为空
alter table 
modify(col varchar2(20));