Re: Bad value for type int
От | Gabriel E. Sánchez Martínez |
---|---|
Тема | Re: Bad value for type int |
Дата | |
Msg-id | 55C80E97.5030407@gmail.com обсуждение исходный текст |
Ответ на | Bad value for type int ("Gabriel E. Sánchez Martínez"<gabrielesanchez@gmail.com>) |
Список | pgsql-jdbc |
False alarm! I made a mistake in a different part of the code, and once I fixed it, I am not getting the error anymore. Apologies for not finding this before e-mailing the list, and thanks to everyone for the good work! On 08/09/2015 10:08 PM, "Gabriel E. Sánchez Martínez" wrote: > Hello everyone, > > Is there a known bug that makes the postgres JDBC driver treat long > variables as int variables, in the context of prepared statements? > > I am getting the following error: > > org.postgresql.util.PSQLException: Bad value for type int : 2759496100 > > while executing a prepared statement with the following Java code: > > StringBuilder sb = new StringBuilder(); > sb.append("SELECT * FROM table "); > sb.append("WHERE timestamp BETWEEN ? AND ? "); > sb.append("AND id IN ( "); > for (int i = 0; i < ids.size() - 1; i++) { > sb.append("?, "); > } > sb.append("? );"); > final String query = sb.toString(); > > try (Connection c = db.getConnection()) { > PreparedStatement p = c.prepareStatement(query); > p.setDate(1, new java.sql.Date(startDate.getTime())); > p.setDate(2, new java.sql.Date(endDate.getTime())); > > for (int i = 0; i < ids.size(); i++) { > int arg = 3 + i; > long id = ids.get(i); > p.setLong(arg, id); > } > > ResultSet r = p.executeQuery(); > > This code is being executed by tomcat7 on Ubuntu 14.04, and I am using > the current version of the driver, 9.4-1201. The query executes well > on pgAdmin in all cases, and in tomcat7 only when all the long ids are > in the int range. > > Help will be greatly appreciated! > > Regards, > Gabriel >
В списке pgsql-jdbc по дате отправления: