I've come across the need to store CLOBs in our Ouracle 8i databse via
JDBC. Just setting a String on the PreparedStatement, I found out,
does not work. Instead, I have to use setClob and give it a
So, I then went on the search of finding out how to do this. It seems
if I ran Oracle 9i, I could use oracle.sql.CLOB.createTemporary()
passing it my connection. However, with 8i, I can't find such a
However, I did see a ctor for CLOB that takes an OracleConnection.
So, I worte my code like this...
public Clob getClob(java.sql.Connection pConnection)
CLOB clob = new CLOB((oracle.jdbc.driver.OracleConnection)pConnection);
The problem I've ran into is that, running under WebSphere, the
Connection object I receive from my DataSource is not an actual
OracleConnection, but a proxy from IBM
The other 8i soltuion I've seen is to first do an INSERT with
empty_clob() and then do a SELECT to get the CLOB locate. This
doesn't just look ugly -- it also tremednously complicated this core
piece of my persistence framework (the SQLProcessor pattern).
Can someone offer any ideas on how to make this work, or alternatives?