对数据库表结构重新设计时报ORA-01440错

在开发过程中,常常因为业务需求变更而对数据库表结构进行修改,现需要将table_test表中的field1~field4 四个字段由number(7,2)改成number(9,2),直接更改会报ORA-01440错误:要减小精度或标度,则要修改的列必须为空。我们可以按照以下SQL语句中的4个步骤走:

1.备份原始表(table_test)数据至备份表中(table_test_bak),防止数据丢失

2.删除原始表数据

3.更改表结构,可以使用SQL也可以在可视化编辑器中手动更改表结构

4.将备份表中的数据还原到原始表中

--1.备份数据
create table table_test_bak  as select * from table_test;

--2.删除数据
delete  from table_test; 
commit;

--3.更改表结构
alter table table_test modify( field1 number(9,2), field2 number(9,2),  field3 number(9,2), field4 number(9,2))

--4.还原数据
insert into table_test select * from table_test_bak;
commit;
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值