首页 > 代码库 > Oracle 修改带数据的字段类型

Oracle 修改带数据的字段类型

http://www.cnblogs.com/LDaqiang/articles/1157998.html由于需求变动,现要将一个类型NUMBER(8,2)的字段类型改为 char。
大体思路如下:
      将要更改类型的字段名改名以备份,然后添加一个与要更改类型的字段名同名的字段(原字段已经改名),然后更新数据,最后删除改名备份的字段。

 以下操作在 Oracle 10.2.0.1.0 中通过。

1.
/*修改原字段名*/
ALTER TABLE 表名 RENAME COLUMN 字段名 TO 字段名1;

2.
/*添加一个和原字段同名的字段*/
ALTER TABLE 表名 ADD 字段名  VARCHAR2(30);

3.
/*
将原来的数据更新到新字段中
这是要注意,一定要显示进行数据类型转换(不同于MSSQL)
*/
UPDATE 表名 SET 字段名 = CAST(字段名1 AS VARCHAR2(30));
要注意,如果想修改好字段并且不丢失修改以前字段的数据话一定要注意这里
 
4.
/*删除原来的备份字段*/
ALTER TABLE 表名 DROP COLUMN 字段名1;
 
 
PS:
我在作者基础上补上一个注释语句吧
5.
COMMENT ON COLUMN 表名.字段名 IS ‘注释内容‘;
 

Oracle 修改带数据的字段类型