Re: setObject(int,Object) can not convert Java String object to backend's Integer type - Mailing list pgsql-jdbc

From Dave Cramer
Subject Re: setObject(int,Object) can not convert Java String object to backend's Integer type
Date
Msg-id CADK3HHL_m1fQpoxoDggxuGqmhxPY2Rvy-O1V6o4fT9FJ0oS7sg@mail.gmail.com
Whole thread Raw
In response to setObject(int,Object) can not convert Java String object to backend's Integer type  (Chen Huajun <chenhj@cn.fujitsu.com>)
Responses Re: setObject(int,Object) can not convert Java String object to backend's Integer type  (Chen Huajun <chenhj@cn.fujitsu.com>)
List pgsql-jdbc
Chen,

This link http://docs.oracle.com/javase/1.3/docs/guide/jdbc/getstart/mapping.html should clarify things. The mapping is actually String to char, varchar, or longvarchar. 

Dave

Dave Cramer

dave.cramer(at)credativ(dot)ca
http://www.credativ.ca


On Tue, Jan 8, 2013 at 6:04 AM, Chen Huajun <chenhj@cn.fujitsu.com> wrote:
Hi,

According to JDBC Specification Java String object could be converted to
backend's Integer type by setObject().
But in PostgreSQL JDBC, it's not true. It seems to be a bug.

Sample:
PreparedStatement stmt = con.prepareStatement("select 1::int = ?");
stmt.setObject(1, "2");
ResultSet rs = stmt.executeQuery();//raises an error here!

*)but the following is OK
stmt.setObject(1, "2",Types.INTEGER);
stmt.setObject(1, "2",Types.OTHER);


Internally stmt.setObject(1, "2") binds "2" as varchar ,
if it binds "2" as  unspecified type,the result will be OK.



Regards,
Chen Huajun




--
Sent via pgsql-jdbc mailing list (pgsql-jdbc@postgresql.org)
To make changes to your subscription:
http://www.postgresql.org/mailpref/pgsql-jdbc

pgsql-jdbc by date:

Previous
From: Chen Huajun
Date:
Subject: setObject(int,Object) can not convert Java String object to backend's Integer type
Next
From: Chen Huajun
Date:
Subject: Re: setObject(int,Object) can not convert Java String object to backend's Integer type