Oracle
 sql >> Baza danych >  >> RDS >> Oracle

Jak zaktualizować pusty ciąg do Oracle Clob?

Jak już wspomniałem w twoje inne pytanie :z mojego doświadczenia getClob() i setClob() nie działają poprawnie.

Użyj setCharacterStream() zamiast tego:

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

W ten sposób możesz również usunąć niepotrzebny SELECT przed aktualizacją, co również poprawi wydajność.

Inną opcją byłoby po prostu ustawienie tej kolumny na NULL

Edytuj:

Z nowszymi sterownikami (11.x) możesz również spróbować użyć setString() i getString() w kolumnie CLOB.

Blokowanie wiersza powinno być konieczne tylko wtedy, gdy używasz lokalizatora LOB, który zamierzasz zachować podczas transakcji, która obejmuje więcej niż jedną instrukcję (przynajmniej tak rozumiem powiązane odniesienie do podręcznika).




  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Powtarzające się wartości w kolumnie

  2. Wyklucz wartość rekordu w grupie, jeśli inny jest obecny v2

  3. Usuń rekordy z tabeli źródłowej po ich przesłaniu za pomocą procedury składowanej do tabeli docelowej

  4. Przechowuj duże pliki JSON w Oracle DB

  5. Jak sformatować zapytania Oracle, aby kolumny się nie zawijały?