直接修改,会提示需要先清空该列的值,
在Oracle数据库的表中有数据时,我们想要修改表的字段精度,可以按照如下步骤解决:
第一步:备份要修改的表数据
create table ACC_TRANSPORTLOAN_BAK as select * from ACC_TRANSPORTLOAN;
select count(*) from ACC_TRANSPORTLOAN;
select count(*) from ACC_TRANSPORTLOAN_BAK;
其实就是将要修改的表数据复制到新创建的备份表
第二步:清空原表数据
delete from ACC_TRANSPORTLOAN;
第三步:修改表字段精度
alter table ACC_TRANSPORTLOAN modify LOANAMOUNT number(10,2);
alter table ACC_TRANSPORTLOAN modify EXPECTBACKAMOUNT number(10,2);
alter table ACC_TRANSPORTLOAN modify LOANBALANCE number(10,2);
当然此处也可以直接在PL/SQL工具中直接操作修改表结构,两种方法均可
第四步:恢复原表数据
insert into ACC_TRANSPORTLOAN select * from ACC_TRANSPORTLOAN_BAK;
drop table ACC_TRANSPORTLOAN_BAK;
其实就是将备份表的数据重新插入到原表中,恢复原数据
注意:在进行这项操作时一定要注意在系统没有业务交互时,也就是要修改的表没有新数据插入,否则会导致数据不对等的情况出现