首先,新增一个符合进度和长度符合要求的字段。
alter table tb_test add name_temp number(19,4);
增加字段注释。
comment on column tb_test.name_temp is '名称';
将原始name列的值全都更新到name_temp ,原始列可以不设置为空,毕竟是要删除的。
update tb_test set name_temp =name,name=null;
commit;
删除原始列。
alter table tb_test drop column name;
更改name_temp的名称为name。
alter table tb_test rename column name_temp to name;
这种方式会将列的顺序更改,但是只需要一此update数据就行。
如果你要求不更改字段顺序的话,就要将原始字段清空,再执行更改字段精度和长度的sql,因为要修改字段的精度和长度必须是该字段的值都是空。