Filtering out commas for DOUBLE
От | Chris Gamache |
---|---|
Тема | Filtering out commas for DOUBLE |
Дата | |
Msg-id | 7fbead4f-1375-40b9-8a5b-95d3a1a5e5a5@e23g2000prf.googlegroups.com обсуждение исходный текст |
Ответы |
Re: Filtering out commas for DOUBLE
|
Список | pgsql-jdbc |
I was having a problem with JDBC expecting a DOUBLE from a PostgreSQL function which returnes "money" ... My first inclination was to return an OTHER, but PgJDBC balks that it expects java.sql.Types=8 (DOUBLE) but I set it to 1111 (OTHER) ... There was (seemingly) no way around that. So, I decided to attack the root of the problem: PostgreSQL is returning "1,234.00" when it is executing the function that returns money and JDBC won't budge on it's expectation that it should be DOUBLE. The comma in the return string is confusing Double.parseDouble, so I filter out the commas before parseDouble is called. My hack got me over the hump, but it makes me uneasy to apply this patch to a codebase that I am not intimately familiar with. Can you propose a different way around this problem, a more complete patch, or the blessing that this will not adversely affect the normal function of the driver? From org.postgresql.jdbc2.AbstractJdbc2ResultSet: public static double toDouble(String s) throws SQLException { if (s != null) { try { s = s.trim(); s = s.replace(",",""); //filter out the commas return Double.parseDouble(s); } catch (NumberFormatException e) { throw new PSQLException(GT.tr("Bad value for type {0} : {1}", new Object[]{"double",s}), PSQLState.NUMERIC_VALUE_OUT_OF_RANGE); } } return 0; // SQL NULL }
В списке pgsql-jdbc по дате отправления: