Ошибка в драйвере PG JDBC - тип базы данных MONEY (неверное значение для типа double)

Я работаю с драйвером Postgres JDBC (postgresql-42.2.5.jar) и СУБД PostgreSQL 10.6.

У меня есть набор результатов, и 3 из его столбцов имеют тип money (на уровне БД). И у меня есть объект метаданных набора результатов.

Когда тип столбца - money, метод драйвера getColumnType() возвращает 8 для money колонны.

Я проверил, значение 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 ответов

Другие вопросы по тегам