有些时候,因为没能预料到一些情况的变化,需要修改字段的类型。如果是varchar型,直接增加长度是可以的,但是如果需要修改成其他类型就不能这么做了。
思路:1、增加一个临时列,把需要修改的那个字段的数据,存放在这个临时列中
2、把要修改的字段置空
3、修改字段类型,把临时列中的数据放回该字段中
4、删除临时列
5:OK
具体代码如下:
alter table tb add lsl number;--增加临时列
update tb set lsl=dd ,dd=null;--把数据放到临时列,置空数据列
commit;
alter table tb modify dd NVARCHAR2(200);--修改字段类型
update tb set dd='00'||lsl where lsl is not null;--放回数据
commit;
alter table tb drop column lsl;--删除临时列 --参数说明tb 表明,dd要修改的列。lsl临时列
--描述:dd为number型,现在要把它修改成NVARCHAR2(200)