Re: error: operator does not exist: bigint = character varying

Поиск
Список
Период
Сортировка
От Edoardo Panfili
Тема Re: error: operator does not exist: bigint = character varying
Дата
Msg-id 46837705.5030008@aspix.it
обсуждение исходный текст
Ответ на Re: error: operator does not exist: bigint = character varying  (Tom Lane <tgl@sss.pgh.pa.us>)
Список pgsql-jdbc
Tom Lane ha scritto:
> Edoardo Panfili <edoardo@aspix.it> writes:
>> Now my application raises this exception (all was ok with 8.2):
>> org.postgresql.util.PSQLException: ERROR: operator does not exist:
>> bigint = character varying
>
>> this is my code fragment
>> ----------------------------------------------------------------------
>> PreparedStatement ps = connessione.prepareStatement("SELECT
>> strato.idplot, strato.idstrato, strato.nome, strato.copertura,
>> strato.altezza, strato.note FROM plot WHERE idplot=?");
>> ps.setString(1, rilievo.dato[Rilievo.ID]);
>> ----------------------------------------------------------------------
>> the type of idplot is
>> "idplot integer NOT NULL DEFAULT nextval('sequenza_plot'::regclass)"
>
> Better look again, because that error message says that the lefthand
> input is bigint not integer.  Are you looking at the right table?
Only partially, there are other query that must be cleaned in my code,
(it seems that postgres does more type checking in every new version, a
good thing).

> In any case you should not be using setString() for an integer query
> parameter.  This would have worked in 8.2 only for rather small values
> of "work" --- you would have gotten a textual not a numeric comparison,
> which among other things would have defeated the use of any index on the
> idplot column.
All goes well now,
thank you (also to Oliver).

Edoardo
--
Jabber: edoardopa@talk.google.com
tel: 075 9142766

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

Предыдущее
От: "Bojan Skaljac"
Дата:
Сообщение: New update for Serbian translation
Следующее
От: David Goodenough
Дата:
Сообщение: setObject type for Interval objects