Re: 8.0.3 parse errors where 7.x was ok

Поиск
Список
Период
Сортировка
От Oliver Jowett
Тема Re: 8.0.3 parse errors where 7.x was ok
Дата
Msg-id 42F94787.7030408@opencloud.com
обсуждение исходный текст
Ответ на 8.0.3 parse errors where 7.x was ok  (Nick Johnson <pgsql@spatula.net>)
Список pgsql-jdbc
Nick Johnson wrote:
> I'm getting a new exception when upgrading to Postgres 8.0.3 with the
> JDBC drivers it builds:
>
> java.sql.SQLException: ERROR: parse error at or near "$1"
>
> This is happening with the following bit of code:
>
>     105         try {
>     106             s = c.prepareStatement("select now() - interval ?");
>     107             s.setString(1, "7 days");
>     108             ResultSet r = s.executeQuery();

Because the driver now pushes parameter handling to the backend, you can
only put ? placeholders where there is a PARAM terminal in the backend's
SQL grammar. Previously the driver just substituted parameter values
directly into the query, so you could get away with all sorts of things.

Perhaps this will work instead:

  s = c.prepareStatement("select now() - ?");
  s.setObject(new org.postgresql.util.PGInterval("7 days"));

-O

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

Предыдущее
От: Kris Jurka
Дата:
Сообщение: Re: 8.0.3 parse errors where 7.x was ok
Следующее
От: Dave Cramer
Дата:
Сообщение: Re: Missing functionality in ResultSetMetaData ?