gpt4 book ai didi

当仅存在小数部分时,Oracle TO_NUMBER 转换失败

转载 作者:行者123 更新时间:2023-12-02 07:40:42 25 4
gpt4 key购买 nike

我有一个带有数字的 VARCHAR2,写成小数点和小数部分,例如.02。使用时

TO_NUMBER(NUMBER_COLUMN)

我得到一个错误

ORA-01722: invalid number

表示格式无法识别。是否有内置的解决方法(我可以DECODESUBSTR 来提供所需的零?

最佳答案

您遇到此错误不是因为您的 varchar 列中存在小数点 + 小数部分,而是因为您的 varchar 列包含非数字字符,在运行 to_number 时无法将其转换为数字。

我可以通过 this SQL fiddle 来证明这一点

could also be that your NLS parameters与 Oracle 期望的小数点分隔符不同,因此抛出此错误。

您可以通过更改 NLS_NUMERIC_CHARACTERS 来更改 Oracle 期望作为小数运算符的字符参数。

ALTER SESSION SET NLS_NUMERIC_CHARACTERS = ".,"

将告诉 Oracle 期待 . 作为小数点和 , 作为千位分隔符

关于当仅存在小数部分时,Oracle TO_NUMBER 转换失败,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/11451965/

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