Postgresql,BigDecimal 类型的错误值:NaN

Posted

技术标签:

【中文标题】Postgresql,BigDecimal 类型的错误值:NaN【英文标题】:Postgresql, Bad value for type BigDecimal : NaN 【发布时间】:2020-11-12 08:36:53 【问题描述】:

在 Postgresql 表中,我们有类型为 numeric(10, 2) 的字段。当我尝试从此字段中选择数据时

select amount from vc_cashouts where id = 25721

我得到这个结果(其他记录正确):

org.postgresql.util.PSQLException: Bad value for type BigDecimal : NaN

我该如何纠正这个结果?我需要将此列中的数据导出到文件,并且我需要将此 NaN 替换为例如默认值

【问题讨论】:

【参考方案1】:

我假设您正在使用 ResultSet.getBigDecimal() 来检索该值。

BigDecimal 不能代表 NaN - 只有 java.lang.Double 可以这样做。

您需要更改代码以使用 ResultSet.getDouble()ResultSet.getObject() - 后者将根据数据库中的值返回 BigDecimal 或 Double.NaN

【讨论】:

以上是关于Postgresql,BigDecimal 类型的错误值:NaN的主要内容,如果未能解决你的问题,请参考以下文章

pg报错不良的类型 BigDecimal : NaN

使用 Java 在 PostgreSQL 上的货币数据

在java中如何将bigdecimal类型转成String类型?

java的bigdecimal类的用法

mybatis bigdecimal 对应啥类型

bigdecimal类型数据的min方法