原数据表中金额类型保留两位小数的精度,现需要保留五位小数,我试着用alter table xxxx modify(column number(16,5)),可是这种方法需要数据列为空,不知该怎么修改?求大神解答,另外,对于原始数据,我又该如何将小数位数补齐呢?
补起没戏,本来就没有的东西
----随机新建一张表(金额保留两位有效数字)
create table lhz_test(id varchar2(3),money number(16,2));
----随便插几组值
insert into lhz_test values('001',2534);
insert into lhz_test values('002',343363463.34);
insert into lhz_test values('003',5634534.12);
insert into lhz_test values('004',979789.67);
----查看原始数据
select * from lhz_test;
----新增一列,使得精度保留五位有效数字
alter table lhz_test add (salary number(16,5));
----将原数据复制到新增列中
update lhz_test a set a.salary=(select b.money from lhz_test b where a.id=b.id);
----删除原数据列
alter table lhz_test drop column money;
----将新增列的列名改为原数据列名
alter table lhz_test rename column salary to money;
----查看表结构
desc lhz_test;