0丢失之谜:解决Oracle中0开头小数被截断的问题

简介: 0丢失之谜:解决Oracle中0开头小数被截断的问题

问题复现:

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

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

原因

为何小数点前0会省略,是因为Oracle数据库中存在一个隐形类型转换,在拼接的过程中小数自动转成字符类型,相当于调用了to_char函数,所以丢失小数点前面的0

解决方式一:

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

解释:

其中9代表如果存在数字则显示数字,不存在则显示空格;

0代表如果存在数字则显示数字,不存在则显示0,即占位符;

fm代表删除如果是因9带来的空格,则删除。

解决方式二:

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

解释:

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

总结

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

目录
相关文章
|
SQL Oracle 关系型数据库
【Bug记录】Oracle中小数点前面的0不显示的问题
【Bug记录】Oracle中小数点前面的0不显示的问题
|
Oracle 关系型数据库 数据库连接
oracle保留小数位数
oracle保留小数位数
oracle保留小数位数
|
Oracle 关系型数据库 Shell
ORACLE清理、截断监听日志文件(listener.log)
原文:ORACLE清理、截断监听日志文件(listener.log)        在ORACLE数据库中,如果不对监听日志文件(listener.log)进行截断,那么监听日志文件(listener.log)会变得越来越大,想必不少人听说过关于“LISTENER.LOG日志大小不能超过2GB,超过会导致LISTENER监听器无法处理新的连接”,当然这个不是真理,不会绝对出现,只是发生在老旧的32bit Linux或Unix系统下面,真实的原因是一些32bit OS自带的文件系统不支持2GB以上的文件,导致监听服务进程(tnslsnr)append write日志文件出错。
1294 0
|
5月前
|
Oracle 关系型数据库 Linux
【赵渝强老师】Oracle数据库配置助手:DBCA
Oracle数据库配置助手(DBCA)是用于创建和配置Oracle数据库的工具,支持图形界面和静默执行模式。本文介绍了使用DBCA在Linux环境下创建数据库的完整步骤,包括选择数据库操作类型、配置存储与网络选项、设置管理密码等,并提供了界面截图与视频讲解,帮助用户快速掌握数据库创建流程。
488 93
|
4月前
|
Oracle 关系型数据库 Linux
【赵渝强老师】使用NetManager创建Oracle数据库的监听器
Oracle NetManager是数据库网络配置工具,用于创建监听器、配置服务命名与网络连接,支持多数据库共享监听,确保客户端与服务器通信顺畅。
288 0
|
7月前
|
存储 Oracle 关系型数据库
服务器数据恢复—光纤存储上oracle数据库数据恢复案例
一台光纤服务器存储上有16块FC硬盘,上层部署了Oracle数据库。服务器存储前面板2个硬盘指示灯显示异常,存储映射到linux操作系统上的卷挂载不上,业务中断。 通过storage manager查看存储状态,发现逻辑卷状态失败。再查看物理磁盘状态,发现其中一块盘报告“警告”,硬盘指示灯显示异常的2块盘报告“失败”。 将当前存储的完整日志状态备份下来,解析备份出来的存储日志并获得了关于逻辑卷结构的部分信息。
|
5月前
|
SQL Oracle 关系型数据库
Oracle数据库创建表空间和索引的SQL语法示例
以上SQL语法提供了一种标准方式去组织Oracle数据库内部结构,并且通过合理使用可以显著改善查询速度及整体性能。需要注意,在实际应用过程当中应该根据具体业务需求、系统资源状况以及预期目标去合理规划并调整参数设置以达到最佳效果。
406 8
|
7月前
|
SQL Oracle 关系型数据库
比较MySQL和Oracle数据库系统,特别是在进行分页查询的方法上的不同
两者的性能差异将取决于数据量大小、索引优化、查询设计以及具体版本的数据库服务器。考虑硬件资源、数据库设计和具体需求对于实现优化的分页查询至关重要。开发者和数据库管理员需要根据自身使用的具体数据库系统版本和环境,选择最合适的分页机制,并进行必要的性能调优来满足应用需求。
377 11

推荐镜像

更多