Seperti yang telah saya sebutkan di pertanyaan Anda yang lain :dalam pengalaman saya getClob() dan setClob() tidak berfungsi dengan baik.
Gunakan setCharacterStream()
sebagai gantinya:
StringReader clob = new StringReader("");
pStmt = conn.prepareStatement("update activity set REFERENCE = ? WHERE ID = ?");
pStmt.setCharacterStream(1, clob, 0);
pStmt.setLong(2, 1);
pStmt.executeUpdate();
Dengan begitu Anda juga dapat menghapus SELECT yang tidak perlu sebelum memperbarui, yang juga akan meningkatkan kinerja.
Pilihan lain adalah dengan hanya mengatur kolom itu ke NULL
Sunting:
Dengan driver yang lebih baru (11.x) Anda mungkin juga ingin mencoba menggunakan setString()
dan getString()
pada kolom CLOB.
Penguncian baris seharusnya hanya diperlukan saat Anda menggunakan pencari LOB yang ingin Anda simpan selama transaksi yang mencakup lebih dari satu pernyataan (setidaknya itulah pemahaman saya tentang referensi tertaut ke manual).