PreparedStatement error upon trying to set a '?' after interval keyword

Поиск
Список
Период
Сортировка
От javadesigner
Тема PreparedStatement error upon trying to set a '?' after interval keyword
Дата
Msg-id 53E9144B.4010404@yahoo.com
обсуждение исходный текст
Ответы Re: PreparedStatement error upon trying to set a '?' after interval keyword
Список pgsql-jdbc
Hi:

postgres: 9.3.4
driver: postgresql-9.3-1102.jdbc4.jar


I have the following query:

select
  count(*) from checkin
where
  pid = ? and checkin_time > current_date - interval '? days'

When I try to set the interval (parameter 2, second question mark):

ps.setLong("pid", 123);
ps.setInt("interval_days", 7);

I get the following error:

ERROR      org.postgresql.util.PSQLException: The column index is out of
range: 2, number of columns: 1
at
org.postgresql.core.v3.SimpleParameterList.bind(SimpleParameterList.java:56)

=====

I looked at the mailing list archives and whereas others have seen the
same issue, I am trying to understand the root cause of why the JDBC
driver throws an error here ? Should it just set the location of the
second question mark, with the specified data type (in this case in
integer) ? What's the point of throwing an error, why does the
preparedstatement care ? Its job is to simply replace question marks
with the specified data type, right ?

Best
--j
`


В списке pgsql-jdbc по дате отправления:

Предыдущее
От: Leonard Meyer
Дата:
Сообщение: waitOnLOck on several threads when db connection lost
Следующее
От: Sehrope Sarkuni
Дата:
Сообщение: Re: PreparedStatement error upon trying to set a '?' after interval keyword