it编程 > 数据库 > Oracle

如何解决Oracle中0开头小数被截断的问题

36人参与 2026-09-10 Oracle

问题复现

今天在开发的过程中,遇到这种情况

然后又去oracle数据库里,查看一番,发现数据库寸的是0.9,这个零竟然离奇消失了。

原因 

为何小数点前0会省略,是因为oracle数据库中存在一个隐形类型转换,

在拼接的过程中小数自动转成字符类型,相当于调用了to_char函数,所以丢失小数点前面的0

解决方式一

加上to_char(字段,’fm9999999999999990.00’) ,(查看表结构设计,我这里类型是number(16,2),所以设置前面小数点前面最多16位,后面保留2位)

解释:

解决方式二

decode(substr(字段,1,1),'.','0'||字段,字段) 字段别名

解释:

截取值,如果开头是 小数点,那么加个0然后拼接上字段,如果不是,不做改变即可。

总结

处理的办法有很多,当然能解决问题就可以

以上为个人经验,希望能给大家一个参考,也希望大家多多支持代码网。

(0)

您想发表意见!!点此发布评论

推荐阅读

Oracle中如何将逗号分隔的代码字段批量转换为名称列表

09-10

Oracle数据库审计启停的完整指南(从传统审计到统一审计)

09-10

Oracle merge into用法详解:如何同时更新插入删除数据

09-10

Oracle物化视图是什么?用途、创建与刷新方法详解

09-11

oracle导入dmp文件报IMP-00017错误怎么解决

09-11

Oracle包是什么?一文带你搞懂包的创建与使用

09-09

猜你喜欢

版权声明:本文内容由互联网用户贡献,该文观点仅代表作者本人。本站仅提供信息存储服务,不拥有所有权,不承担相关法律责任。 如发现本站有涉嫌抄袭侵权/违法违规的内容, 请发送邮件至 2386932994@qq.com 举报,一经查实将立刻删除。

发表评论