大家好,又见面了,我是你们的朋友全栈君。
项目初期表结构设计是非常重要,在字段类型定义样也要格外小心,业务开展后,修改字段类型代价非常大。本文主要记录在 oracle 中 number 类型转换为 varchar2 数据类型方法以及案例演示。 number类型的数据直接存人 varchar2类型的字段中,会出现格式问题,如:.5, 5. 等
注意点:
-- 9 不会补占位符
select to_char(123.45, 'FM9999.999') from dual;
-- ==>
-- 补占位符 0
select to_char(123.45, 'FM0000.000') from dual;
-- ==>0123.450
-- 四舍五入
select to_char(123.4567, 'FM9999.999') from dual;
-- ==>123.457
select length(to_char(123.4567, 'FM9999.999')) from dual;
-- ==> 7
select to_char(123, 'FM9999.999') from dual;
-- ==>123.
-- 解决方案1
select regexp_replace(to_char(123, 'FM9999.999'), '\.$', '') from dual;
-- ==>123
-- 解决方案2
select to_char(123, 'FM9999.099') from dual;
-- ==>123.0
-- 小数格式化问题(小于1的数)
select to_char(0.123, 'FM9999.999') from dual;
-- ==>.123
-- 解决方法
select to_char(0.123, 'FM9990.999') from dual;
-- ==>0.123
-- 数据太长导致的错误:
select to_char(123.4567, 'FM99.9') from dual;
-- ==>#####
发布者:全栈程序员栈长,转载请注明出处:https://javaforall.cn/163906.html原文链接:https://javaforall.cn