当前位置: 首页 > 面试题库 >

十进制分隔符oracle

柴嘉年
2023-03-14
问题内容

我需要用点替换逗号,然后我需要将值设为数字。所以我这样写:

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

但是然后我想转换to_number该值,然后出现错误:

"invalid number"


问题答案:

to_number()函数使用会话的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=',.';,但可能无法在每个必须运行代码的客户端中控制该设置。



 类似资料:
  • 问题内容: 如何用“。”格式化数字 作为千位分隔符,和“,”作为MySql中的十进制分隔符? 我正在使用像 SELECT Format(myNumber,2)as myNumberFormatted FROM … 但是返回类型是一个数字,例如: 相反,我想要 在MySQL中怎么做? 谢谢 问题答案: MySQL> = 5.5: MySQL <5.5:

  • 我试图组成一个格式化的字符串,应该看起来像这样: 一瓶伏特加要x.yz卢布。 其中x.yz是四舍五入为2个小数点的任意双精度值。 为了实现这一点,我使用字符串插值和printf语法: 不幸的是,在一台使用俄语语言环境的机器上,上面的代码片段产生的结果与我想要实现的结果略有不同: str:String=一瓶伏特加要2.56卢布。 这是可以理解的(f interpolator使用的Java格式化程序应

  • 问题内容: 我正在尝试将双精度分隔为整数和小数部分 因此,例如,数字24.4应该分为24和4。 使用此方法可为我提供以下值: 我需要十进制的值为4。 如何解决这个问题? 问题答案: 你可以做一个String 。然后Integer 取回两个整数分量。

  • 问题内容: 我对使用MONEY数据类型的JDBC应用程序有疑问。当我插入MONEY栏时: 我有例外: 在使用ODBC驱动程序的本机Windows应用程序中,也可以使用相同的SQL。我住在波兰,居住在波兰,在我的国家/地区用逗号分隔数字的小数部分,因此我尝试: 而且有效。我检查了在PreparedStatement中必须使用点分隔符:。当然,我可以使用: 但是有些代码是“通用”代码,它从csv文件导

  • 我想在我的Android应用程序中显示一些坐标。我从后端收到两个双精度值(和,以十进制度数表示)。 示例数据: 现在我在我的类文件中填充我的文本视图: 我的xml资源文件包含以下内容: 它显示: 因为我住在荷兰,所以它的格式是相应的。 看见https://developer.android.com/reference/java/util/Formatter 数字定位算法 如果存在十进制分隔符,则替

  • Python3 实例 以下代码用于实现十进制转二进制、八进制、十六进制: # -*- coding: UTF-8 -*- # Filename : test.py # author by : www.runoob.com # 获取用户输入十进制数 dec = int(input("输入数字:")) print("十进制数为:", dec) print("转换为二进制为:", bin(dec