File APIs for Java Developers
Manipulate DOC, XLS, PPT, PDF and many others from your application.
http://aspose.com/file-tools
The moose likes JDBC and the fly likes CLOB field in Oracle not being updated with JDBC Big Moose Saloon
  Search | Java FAQ | Recent Topics | Flagged Topics | Hot Topics | Zero Replies
Register / Login
JavaRanch » Java Forums » Databases » JDBC
Bookmark "CLOB field in Oracle not being updated with JDBC" Watch "CLOB field in Oracle not being updated with JDBC" New topic
Author

CLOB field in Oracle not being updated with JDBC

Susan Mincey
Greenhorn

Joined: Nov 08, 2007
Posts: 13
I have tried about 6 different methods to insert my form field (>4000 characters) into my CLOB field in Oracle but nothing is working. I have used oracle.sql.CLOB and java.sql.Clob. I have used a Writer to stream by characters to the CLob object, I have used setString() from java.sql.Clob but it is still not inserting the Lob locator into the DB, nor any of the actual data. I have copied code from several posters in Java Ranch and other places but nothing is doing the trick. Can anyone offer advice or corrections? Here's the
code: (java 1.4, Oracle 10g, ojdbc14.jar)

This part works:
connect to DB with JDBC
insert empty_Clob() and row identifier

try
{

String sql = "SELECT body FROM table "
+ "WHERE id = '1'";

conn.setAutoCommit(false);
ps = conn.prepareStatement(sql);
rs = ps.executeQuery();
//oracle.sql.CLOB clob = null;
java.sql.Clob myClob = null;
if (rs.next())
{
//clob = (oracle.sql.CLOB)rs.getClob("body");
myClob = (java.sql.Clob)rs.getClob("body");
plog.log("log sql here: " + sql);

This part does not:

// java.io.Writer wr = ((oracle.sql.CLOB)clob).getCharacterOutputStream(); //this is deprecated method for oracle.sql.CLOB
java.io.Writer wr = ((java.sql.Clob)myClob).setCharacterStream(1);

char[] aClobData = formFieldText.toCharArray();
wr.write (aClobData);
wr.flush ();
wr.close ();
rs.close ();
} else{
plog.log("CLOB not updated in DB:" + sql);
}
//close all connections here.....
// commit DB here....

There seems to be a dozen ways to stream data to the Clob object but I haven't found one that works. Does anyone have something that works? Thanks
 
It is sorta covered in the JavaRanch Style Guide.
 
subject: CLOB field in Oracle not being updated with JDBC
 
Similar Threads
regarding clob (critical)
Reading CLOB object from Oracle
updating a CLOB field using oracle
BLOB
CLOB ClassCastException