gpt4 book ai didi

sql - 小数点分隔符 oracle

转载 作者:行者123 更新时间:2023-12-03 15:38:39 25 4
gpt4 key购买 nike

我需要用点替换逗号,然后我需要我的值是一个数字。
所以我写了这个:

select replace('12345,6789', ',' , '.') from dual --it works fine

但后来我想转换 to_number该值,我收到错误:

"invalid number"

最佳答案

to_number() function使用 session 的 NLS_NUMERIC_CHARACTERS设置决定如何解释逗号和句点。如果你知道你的字符串总是有一个逗号作为小数点分隔符,你可以使用可选的第三个参数覆盖它作为调用的一部分;虽然这确实意味着您必须指定格式模型:

select to_number('12345,6789', '9999999999D9999', 'NLS_NUMERIC_CHARACTERS='',.''')
from dual;

TO_NUMBER('12345,6789','9999999999D9999
---------------------------------------
12345.6789

您不需要单独的 replace()步。

您还可以使用 ALTER SESSION SET NLS_NUMERIC_CHARACTERS=',.'; 更改 session 的设置,但您可能无法控制必须运行您的代码的每个客户端中的设置。

关于sql - 小数点分隔符 oracle,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/38739525/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com