Thread: Statement setNull for Types.CLOB

Statement setNull for Types.CLOB

From
"Matt Magoffin"
Date:
Hello, I'm using PostgreSQL 8 and the 310 build of the 8.0 JDBC3 driver
with Hibernate. For 'text' columns in my database, I had mapped them to
the Hibernate "text" type. When attempting to set the value of a text
column to 'null' via a PreparedStatement Hibernate calls setNull() passing
the Types.CLOB as the SQL type. The Postgres driver is throwing an
exception, however, saying that type is unknown.

I can easily change the Hibernate mapping to "string", which would change
the SQL type passed to setNull() to Types.VARCHAR, but I was wondering if
Types.CLOB should be a supported value in the setNull() JDBC method?

I realize it might not be correct to think of the PostgreSQL text type as
a CLOB, so I just wanted some insight on this issue if possible.

Thanks,




Re: Statement setNull for Types.CLOB

From
Kris Jurka
Date:

On Fri, 18 Feb 2005, Matt Magoffin wrote:

> Hello, I'm using PostgreSQL 8 and the 310 build of the 8.0 JDBC3 driver
> with Hibernate. For 'text' columns in my database, I had mapped them to
> the Hibernate "text" type. When attempting to set the value of a text
> column to 'null' via a PreparedStatement Hibernate calls setNull() passing
> the Types.CLOB as the SQL type. The Postgres driver is throwing an
> exception, however, saying that type is unknown.
>

This problem was just reported for bytea/BLOB here:

http://archives.postgresql.org/pgsql-jdbc/2005-02/msg00115.php

The same situation applies, I've fixed the setNull call to do something,
but again CLOB really maps to the oid datatype in pg, not text.

Kris Jurka

Re: Statement setNull for Types.CLOB

From
Kevin Murphy
Date:
On Fri, 18 Feb 2005, Kris Jurka wrote:
 > On Fri, 18 Feb 2005, Matt Magoffin wrote:
 >> Hibernate calls setNull() passing
 >> the Types.CLOB as the SQL type. The Postgres driver is throwing an
 >> exception, however, saying that type is unknown.
 >
 > I've fixed the setNull call to do something,
 > but again CLOB really maps to the oid datatype in pg, not text.

I just encountered the same problem with setObject in
postgresql-8.0-311.jdbc3.jar, btw.

I don't understand the bit about oid, so I guess I will use
Types.VARCHAR unless instructed otherwise.

-Kevin Murphy