Oracle
 sql >> база данни >  >> RDS >> Oracle

Как да актуализирате празен низ до oracle Clob

Както вече споменах в другия ви въпрос :според моя опит getClob() и setClob() не работят правилно.

Използвайте setCharacterStream() вместо това:

StringReader clob = new StringReader("");
pStmt = conn.prepareStatement("update activity set REFERENCE = ? WHERE ID = ?");
pStmt.setCharacterStream(1, clob, 0);
pStmt.setLong(2, 1);
pStmt.executeUpdate();

По този начин можете също да премахнете ненужния SELECT преди актуализиране, което също ще подобри производителността.

Друг вариант би бил просто да зададете тази колона на NULL

Редактиране:

С по-нови драйвери (11.x) можете също да опитате да използвате setString() и getString() в колоната CLOB.

Заключването на реда трябва да е необходимо само когато използвате LOB локатор, който възнамерявате да запазите по време на транзакция, която обхваща повече от един оператор (поне това е моето разбиране за свързаната препратка към ръководството).




  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Как да конвертирате CLOB в BLOB в Oracle?

  2. Oracle UTL_FILE чете CSV файлови редове

  3. Не може да се коригира Грешка:PL/SQL изразът е игнориран

  4. конфигурирайте php с oracle

  5. Изберете от комбиниран изглед с конкатенация, която не работи?