Skip site navigation (1) Skip section navigation (2)

Peripheral Links

Header And Logo

PostgreSQL
| The world's most advanced open source database.

Site Navigation

Search archives
  Advanced Search

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


  • From: Tom Lane <tgl(at)sss(dot)pgh(dot)pa(dot)us>
  • To: Edoardo Panfili <edoardo(at)aspix(dot)it>
  • Cc: pgsql-jdbc(at)postgresql(dot)org
  • Subject: Re: error: operator does not exist: bigint = character varying
  • Date: Thu, 28 Jun 2007 00:47:08 -0400
  • Message-id: <20532.1183006028@sss.pgh.pa.us> <text/plain>

Edoardo Panfili <edoardo(at)aspix(dot)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?

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.

			regards, tom lane



Home | Main Index | Thread Index

Privacy Policy | About PostgreSQL
Copyright © 1996 – 2012 PostgreSQL Global Development Group