暂无图片
暂无图片
暂无图片
暂无图片
暂无图片

ORACLE number类型转换

吼吼哈嘿 2024-11-30
183

oracle可以直接修改表字段类型,但使用的时候有些细节需要注意,本文章仅正对number类型转换进行说明。

1.number转varchar2

当表中有数据且修改字段有不为空的时候,修改报错。报错提示ORA-01439:要修改数据类型,则要修改的列必须为空。

因此,当number要转成varchar2的时候必须把字段置空才行。

2.number转number(m,n)

number默认38位精度,整数位和小数位加起来等于38

number(m,n)表示整数位为m,小数位为n,加起来不能超过38

当表中有数据或者对于字段只要有一个不为空也会报错,哪怕长度仅为1,报错提示 ORA-01440:要减小精度或标度,则要修改的列必须为空

解释:这里有些人会觉得奇怪,认为表里面的数据满足修改后的精度那就可以修改,但实际上这里并不是看字段的数据,而是对修改前后的整数位和小数位都要不小于才能修改字段类型,否则就会报错

3.number(m1,n1)转number(m2,n2)

当m2>=m1>0,n2>=n1>=0是字段类型才会有修改成功,否则会报错,报错提示 ORA-01440:要减小精度或标度,则要修改的列必须为空。

验证脚步参考:

create table tmp_del_hegang_test_number

(id number(36,2));

insert into tmp_del_hegang_test_number

select 1.1 id from dual;

commit;

alter table tmp_del_hegang_test_number modify id number(35,2)

;

select * from tmp_del_hegang_test_number

;
————————————————

版权声明:本文为博主原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明。

原文链接:https://blog.csdn.net/jsjhegang/article/details/125762091

文章转载自吼吼哈嘿,如果涉嫌侵权,请发送邮件至:contact@modb.pro进行举报,并提供相关证据,一经查实,墨天轮将立刻删除相关内容。

评论