Come ho già accennato in l'altra tua domanda :nella mia esperienza getClob() e setClob() non funzionano correttamente.
Usa setCharacterStream()
invece:
StringReader clob = new StringReader("");
pStmt = conn.prepareStatement("update activity set REFERENCE = ? WHERE ID = ?");
pStmt.setCharacterStream(1, clob, 0);
pStmt.setLong(2, 1);
pStmt.executeUpdate();
In questo modo puoi anche rimuovere il SELECT non necessario prima dell'aggiornamento, il che migliorerà anche le prestazioni.
Un'altra opzione sarebbe semplicemente impostare quella colonna su NULL
Modifica:
Con i driver più recenti (11.x) potresti anche voler provare a utilizzare setString()
e getString()
nella colonna CLOB.
Il blocco della riga dovrebbe essere necessario solo quando utilizzi un localizzatore LOB che intendi conservare durante una transazione che copre più di un'istruzione (almeno questa è la mia comprensione del riferimento collegato al manuale).