Reputation: 1945
Normal way looks like this:
pStmt = conn.prepareStatement("SELECT DETAILS FROM PROGRAM_HISTORY WHERE id = 12");
rset = pStmt.executeQuery();
Clob detailsClob= rset.getClob(1);
Writer writer = adapter.getCharacterOutputStream(detailsClob);
writer.write("add more details");
pStmt = conn.prepareStatement("UPDATE PROGRAM_HISTORY SET DETAILS = ? WHERE ID = 12");
pStmt.setClob(1, detailsClob);
pStmt.execute();
This is a little bit complicated, is any way that I don't need read first then update it. just like update varchar.
Upvotes: 2
Views: 9065
Reputation:
Not sure why you call that the "normal" way, but the following works for me.
It doesn't require any retrieval of the data before updating it.
String value = "So long and thanks for all the fish";
StringReader reader = new StringReader(value);
pStmt = conn.prepareStatement("UPDATE PROGRAM_HISTORY SET DETAILS = ? WHERE ID = 12");
pStmt.setCharacterStream(1, reader, value.length());
pStmt.executeUpdate();
Upvotes: 7