Oracle
 sql >> Teknologi Basis Data >  >> RDS >> Oracle

Cara memperbarui string kosong ke Oracle Clob

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).




  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Buat salinan Basis Data Uji Produksi hanya dengan kumpulan sampel Data

  2. Apakah ada Cara untuk menggunakan Linq ke Oracle

  3. SQL Server Setara dengan Oracle 'CONNECT BY PRIOR', dan 'ORDER SIBLINGS BY'

  4. ORACLE SQL ORA-22814 atribut atau nilai elemen lebih besar dari yang ditentukan dalam tipe

  5. Bagaimana cara mengatur LINESIZE dan PAGESIZE dengan variabel substitusi?