From: | Nedim Cholich <nedim(at)cholich(dot)com> |
---|---|
To: | Kris Jurka <books(at)ejurka(dot)com> |
Cc: | pgsql-jdbc(at)postgresql(dot)org |
Subject: | Re: Jdbc4ResultSet getClob and getBlob are calling getLong internally |
Date: | 2010-02-01 20:39:15 |
Message-ID: | 2f8a6c901002011239r40e7cdd4k66321122e12829a6@mail.gmail.com |
Views: | Raw Message | Whole Thread | Download mbox | Resend email |
Thread: | |
Lists: | pgsql-jdbc |
On Mon, Feb 1, 2010 at 15:15, Kris Jurka <books(at)ejurka(dot)com> wrote:
> On Mon, 1 Feb 2010, Nedim Cholich wrote:
>> After getting 'org.postgresql.util.PSQLException: Bad value for type
>> long' I found these two methods in Jdbc4ResultSet:
>>
>> public java.sql.Clob getClob(int i) throws SQLException
>> {
>> return new Jdbc4Clob(connection, getLong(i));
>> }
>>
>> Calling getLong here has to be wrong?
>>
>
> No. Large Objects are not stored directly inline, but as a pointer to other
> storage. The getLong is retrieving the external storage which Jdbc4Clob
> will then stream from the server on demand. You are probably trying to call
> getClob on a text or varchar column and that's not going to work. It might
> be nice to provide that interface, but there's no benefit (other than
> compatibility) to the user. If you have text data stored inline, then it's
> already been transferred over to the client side in the ResultSet, so
> there's no point in using a streaming interface.
Yes, it's a TEXT column and yes I'm calling rs.getClob(columnName);
What am I suppose to call instead?
The above call produces:
... blah ...
Caused by: org.postgresql.util.PSQLException: Bad value for type long
: url=http://<removed>
at org.postgresql.jdbc2.AbstractJdbc2ResultSet.toLong(AbstractJdbc2ResultSet.java:2796)
at org.postgresql.jdbc2.AbstractJdbc2ResultSet.getLong(AbstractJdbc2ResultSet.java:2019)
at org.postgresql.jdbc4.Jdbc4ResultSet.getClob(Jdbc4ResultSet.java:43)
at org.postgresql.jdbc2.AbstractJdbc2ResultSet.getClob(AbstractJdbc2ResultSet.java:384)
getFixedString(columnIndex) method called from
AbstractJdbc2ResultSet:2019 is returning an actual column value
(String) which toLong is trying to convert to long and failing.
Thanks!
What am I missing?
From | Date | Subject | |
---|---|---|---|
Next Message | Kris Jurka | 2010-02-01 20:42:06 | Re: Jdbc4ResultSet getClob and getBlob are calling getLong internally |
Previous Message | Kris Jurka | 2010-02-01 20:15:52 | Re: Jdbc4ResultSet getClob and getBlob are calling getLong internally |