您的位置:首页 > 其它

ORA-01440:要减小精度或标度,则要修改的列必须为空

2015-04-26 00:00 281 查看
ORA-01440:要减小精度或标度,则要修改的列必须为空
上周在技术群里有人问了这么一个问,就是在pl/sql中执行语法报错:“ORA-01440:要减小精度或标度,则要修改的列必须为空”,这个报错应该很明显了,提示应该怎么做了。但是一般这个时候更改数据结构肯定是业务需要,而改不了是因为表中已经有数据了。




现在一定要改表结构,一般性的是将资料导出来再来修改了。更简便快捷的方法,把需要的表备份一份,改好之后再还原回去就好了。然后可以把备份的表删除。现在按照上面的表名(这家伙的表名也真奇葩)举个例子:
1、对productinfo表的productid进行备份
create table XX_TYCCY_bak as as select * from XX_TYCCY;
2、删除XX_TYCCY表内的数据
delete from XX_TYCCY;
3、修改表结构
alter table XX_TYCCY modify CTZ number(8,3);
4、还原表数据
insert into XX_TYCCY select * from XX_TYCCY_bak;
在工作中,我们业务库也有需要这样改表结构的时候,记录一下,省的以后忘记了不知道怎么办了。
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: