oracle 带有小数点的0.几数据在转化为字符串的时候丢失前面的0
在Oracle数据库中,当你使用TO_CHAR函数将数字转换为字符串时,该函数的行为会依据你提供的格式模型(format model)而变化。如果你仅仅使用TO_CHAR(0.5)而不指定任何格式模型,Oracle会默认使用NLS_NUMERIC_CHARACTERS参数中的设置来决定小数点和小数点后的数字如何显示。通常,这个参数设置为逗号作为千位分隔符(取决于区域设置,可能不是所有地区都如此),点作为小数点。
下面的两种结果都会导致输出.5(或者.5aaa)
SELECT TO_CHAR(0.5) FROM DUAL;
SELECT 0.5||'aaa' FROM DUAL;
你可以使用这种方法来避免
TO_CHAR(0.5, 'FM99990D0')||''
TO_CHAR(0.5, 'FM999999999999990.00')