请记住,您正在将数字转换为字符串。该数字没有任何“,”或“。”的含义。或者任何东西——它是一个数字。
诀窍是得到TO_CHAR
函数将内部数字转换为您想要的字符串表示形式。
有几个问题需要担心:正确获取小数点(小数)以及处理填充。
这是一个工作示例:
SELECT to_char(0.00235,'FM99999999999999990D99999', 'NLS_NUMERIC_CHARACTERS = '',.''') FROM DUAL;
0,00235
SELECT to_char(156.45823,'FM99999999999999990D99999', 'NLS_NUMERIC_CHARACTERS = '',.''') FROM DUAL;
156,45823
SELECT to_char(-0.0235,'FM99999999999999990D99999', 'NLS_NUMERIC_CHARACTERS = '',.''') FROM DUAL;
-0,0235
SELECT to_char(-156.45623,'FM99999999999999990D99999', 'NLS_NUMERIC_CHARACTERS = '',.''') FROM DUAL;
-156,45623
SELECT to_char(123456789.45623,'FM99999999999999990D99999', 'NLS_NUMERIC_CHARACTERS = '',.''') FROM DUAL;
123456789,45623
面罩的相关部分:
FM
用于修剪 Oracle 通常用来填充数字的前导和尾随空白。
D
是小数点,具体取决于您的 NLS 设置。
NLS_NUMERIC_CHARACTERS ...
是对本地 NLS 设置的覆盖 - 如果您的区域设置使用逗号作为小数点,则这可能不是必需的,但这是您可以在具有北美设置的数据库中强制执行此行为的一种方法。