Oracle 修改字段类型解决方法

用于修改字段类型 并且 无数据状态下

alter  table  表名  modify  列名  VARCHAR2(2000);---本方法只支持同类型间转换  如:( VARCHAR2(255)转成  VARCHAR2(2000) );


由于需求变更所以需要将VARCHAR2(2000)改成clob类型:

如果有数据那就要麻烦一些了, 大体思路如下:

首先将要更改类型的字段名改名以备份,然后添加一个与要更改类型的字段名同名的字段(原字段已经改名),然后更新数据,最后删除改名备份的字段。

①----修改原字段名为 (字段名备份)
ALTER TABLE  表名 RENAME COLUMN  字段名 TO  字段名备份;

②----添加一个和原字段同名的字段(注:类型与原来不同)
 ALTER TABLE 表名  ADD 字段名  类型(如:clob);

③---将原来的数据更新到新字段中 
UPDATE  表名 SET  字段名 = 字段备份名;

④---删除原来的备份字段
 ALTER TABLE 表名 DROP COLUMN字段备份名;

本操作在 Oracle 11G 中通过。这样下来基本就已经完成了字段类型的修改;

你可能感兴趣的:(数据库操作)