ERROR: operator does not exist: integer = character varying

Started by Andreas Berglundabout 14 years ago2 messagesgeneral
Jump to latest
#1Andreas Berglund
email.lists81@gmail.com

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

#2Magnus Hagander
magnus@hagander.net
In reply to: Andreas Berglund (#1)
Re: ERROR: operator does not exist: integer = character varying

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/