Обсуждение: ERROR: operator does not exist: integer = character varying

Поиск
Список
Период
Сортировка

ERROR: operator does not exist: integer = character varying

От
Andreas Berglund
Дата:
Hi!

I have the following piece of jdbc code

String query = "UPDATE books SET title = ? WHERE book_id=?";
pstmt =conn.prepareStatement(query);
pstmt.setInt(1, new_book_id);
pstmt.setString(2, getStringPrompt("new title"));
pstmt.executeUpdate();

getStringPrompt returns a string and new_book_id is an int.

The structure of the books table is

books((book_id), title, author_id, subject_id)

where title is text, all the other fields are integers. author_id and
subject_id are foreign keys. When I try to run the code I get the error
message in the subject line and I can't figure out what's wrong.


regards Andreas

Re: ERROR: operator does not exist: integer = character varying

От
Magnus Hagander
Дата:
On Sat, Feb 11, 2012 at 17:22, Andreas Berglund <email.lists81@gmail.com> wrote:
> Hi!
>
> I have the following piece of jdbc code
>
> String query = "UPDATE books SET title = ? WHERE book_id=?";
> pstmt =conn.prepareStatement(query);
> pstmt.setInt(1, new_book_id);
> pstmt.setString(2, getStringPrompt("new title"));
> pstmt.executeUpdate();
>
> getStringPrompt returns a string and new_book_id is an int.

Aren't you passing your parameters in the wrong order? Your query
wants title first and book_id second, but you send in new_book_id
first and the new title second?

--
 Magnus Hagander
 Me: http://www.hagander.net/
 Work: http://www.redpill-linpro.com/