C.c
C.c

Reputation: 1945

How to update Oracle Clob by using JDBC

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

Answers (1)

user330315
user330315

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

Related Questions