sql >> Databáze >  >> RDS >> Oracle

Jak aktualizovat prázdný řetězec na Oracle Clob

Jak jsem již zmínil v vaší další otázce :podle mých zkušeností getClob() a setClob() nefungují správně.

Použijte setCharacterStream() místo toho:

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

Tímto způsobem můžete také odstranit nepotřebný SELECT před aktualizací, což také zlepší výkon.

Další možností by bylo jednoduše nastavit tento sloupec na NULL

Upravit:

S novějšími ovladači (11.x) můžete také zkusit použít setString() a getString() ve sloupci CLOB.

Uzamčení řádku by mělo být nutné pouze tehdy, když používáte lokátor LOB, který si hodláte ponechat během transakce, která zahrnuje více než jeden příkaz (alespoň tak chápu odkaz na příručku).




  1. Jak přejmenuji schéma MySQL?

  2. Nelze připojit PostgreSQL ke vzdálené databázi pomocí pgAdmin

  3. Připraveno několik Vložit mysqli

  4. Funkce spouštění Postgres