修改oracle数据库表的列字段类型
表里有数据存在直接修改列类型肯定失败
1. 直接修改 ,错误如下;
提示表不为空不能修改。其实我们想一想也知道,原有数据改动类型,可能会出问题。能把汉字转为number吗?
2. 那么我们可以这么操作(假设要把列类型varchar2 改为number);
要确保数据类型变更不会导致数据出错。
步骤一:将需要修改的列重命名。
alter table tablename rename column field to fieldnew;
步骤二:新增一列,列名为需要修改的列名。
alter table tablename add field number(20);
步骤三:将改名的列数据存到新加的列。
update tablename set field =trim(fieldnew);
步骤四:将改名的那一列删除掉。
alter table tablename drop column fieldnew;
ok,这么做就变相的 修改了列的类型。