ora-01440:column to be modified must be empty to decrease precision or scale
要减小精度或标度,则要修改的列必须为空
由于业务需求变更,需要对oracle数据库fct_project_quotation 表的SERVICE_AMOUNT number(38) 结构进行修改。由于是金额需要保留两位小数,所以需要修改成number(38,2)修改表结构,必须是在表空的情况下才可以修改表结构。具体操作步骤:
- 创建报价方案备份表
create table fct_project_quotation_bak as select * from fct_project_quotation;
扩展:我们可能在某种情况下,需要复制一张表的表结构,但是不需要数据,可以使用如下sql
create table fct_project_quotation_bak
as select * from fct_project_quotation where 1<>1;
2.删除fct_project_quotation表内的数据
delete from fct_project_quotation;
3.修改表结构
alter table fct_project_quotation modify SERVICE_AMOUNT number(38,2);
4.还原表结构
insert into fct_project_quotation select * from fct_project_quotation_bak;
5.最后一步删除 fct_project_quotation_bak
drop table fct_project_quotation_bak;
不怕从零开始,只怕从未启程!
网友评论