Re: setString and timestamps - Mailing list pgsql-jdbc

From David Goodenough
Subject Re: setString and timestamps
Date
Msg-id 200602201431.55800.david.goodenough@btconnect.com
Whole thread Raw
In response to Re: setString and timestamps  (Kris Jurka <books@ejurka.com>)
Responses Re: setString and timestamps  (Kris Jurka <books@ejurka.com>)
List pgsql-jdbc
On Friday 17 February 2006 18:33, Kris Jurka wrote:
> On Fri, 17 Feb 2006, David Goodenough wrote:
> > I understand from looking at the archive that there some changes around
> > 8.0 in this area, but I am confused as to how to proceed.
> >
> > I have some code which takes a table and inserts values into it where the
> > values have come from XML and are thus all strings.  Some of these XML
> > fields are timestamps, but this generic code does not have table specific
> > knowledge.
> >
> > From what I have read I think I have to use something like the metadata
> > for this table to find the type of this column, and if it is a timestamp
> > then I need to take the string and convert it into a timestamp before I
> > set it into the parameterized insert.  Is this right, and are there any
> > other datatypes which are not implicitly converted from String to
> > whatever is necessary?
>
> In the 8.0 and 8.1 driver all types have strong typing information.  You
> can see this with integers as well.  The driver will do the equivalent of:
>
> jurka=# create table inttest(a int);
> CREATE TABLE
> jurka=# insert into inttest values('1'::varchar);
> ERROR:  column "a" is of type integer but expression is of type character
> varying
> HINT:  You will need to rewrite or cast the expression.
>
> If you really have only string data and no typing information your best
> bet is probably to use an 8.2dev driver and set the stringtype=unspecified
> URL parameter to restore the old behavior of automatic type
> interpretation.
>
> http://jdbc.postgresql.org/documentation/head/connect.html#connection-param
>eters
>
> Kris Jurka
>
>
> ---------------------------(end of broadcast)---------------------------
> TIP 6: explain analyze is your friend
What is the best way of finding the column types in generic code.  That is to
say if I have a method with no knowledge of a specific table and I am about
to do an insert and I wish to get the parameters in the correct format what
APIs exist that allow me to find out the type of a named column.  I have
looked through the JDBC docs without success so far, but it may be that
I am looking for the wrong thing.  If I need to use a Postgresql only API
that is fine.

Thanks

David

pgsql-jdbc by date:

Previous
From: Thomas Burdairon
Date:
Subject: PreparedStatement clearParameters
Next
From: Kris Jurka
Date:
Subject: Re: setString and timestamps