ora-01440:column to be modified must be empty to decrease precision or scale

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)修改表结构,必须是在表空的情况下才可以修改表结构。具体操作步骤:

  1. 创建报价方案备份表
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;

不怕从零开始,只怕从未启程!

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
【社区内容提示】社区部分内容疑似由AI辅助生成,浏览时请结合常识与多方信息审慎甄别。
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

友情链接更多精彩内容