PG JDBC驱动程序中的错误-MONEY DB类型(double类型的错误值)

时间:2019-02-28 11:44:15

标签: java postgresql jdbc pg-jdbc

我正在使用Postgres JDBC驱动程序 (postgresql-42.2.5.jar)和PostgreSQL 10.6 RDBMS。

我有一个结果集,它的3列是money类型 (在数据库级别)。而且我有一个结果集元数据对象。

当列类型为money时,驱动程序的方法 getColumnType()为money列返回8。

我检查过,值8表示Double。

但是从数据库返回的值类似于 $1,312,536.00或说1,312,536.00

因此,当我尝试在该列索引上调用rs.getObject()时,它将出现以下错误:

    org.postgresql.util.PSQLException: Bad value for type double: 1,312,536.00
        at org.postgresql.jdbc.PgResultSet.toDouble(PgResultSet.java:2934)
        at org.postgresql.jdbc.PgResultSet.getDouble(PgResultSet.java:2323)
        at org.postgresql.jdbc.PgResultSet.internalGetObject(PgResultSet.java:194)
        at org.postgresql.jdbc.PgResultSet.getObject(PgResultSet.java:2572)
        at org.apache.commons.dbcp2.DelegatingResultSet.getObject(DelegatingResultSet.java:733)
        at org.apache.commons.dbcp2.DelegatingResultSet.getObject(DelegatingResultSet.java:733)

因此,在涉及金钱类型时,驾驶员似乎无法与其自己的数据库进行对话。

对我来说这似乎是个错误。

似乎PG-JDBC,为此打开了一个错误

https://github.com/pgjdbc/pgjdbc/issues/100

,但由于缺乏响应,他们将其关闭,而不是进行修复。

任何想法如何解决这个问题?

这真的是一个错误还是我错过了一些东西?

0 个答案:

没有答案