sql >> Database >  >> RDS >> Oracle

Hoe een lege string bij te werken naar orakel Clob

Zoals ik al heb vermeld in uw andere vraag :in mijn ervaring werken getClob() en setClob() niet goed.

Gebruik setCharacterStream() in plaats daarvan:

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

Op die manier kunt u ook de onnodige SELECT verwijderen voordat u gaat updaten, wat ook de prestaties zal verbeteren.

Een andere optie zou zijn om die kolom eenvoudig in te stellen op NULL

Bewerken:

Met nieuwere stuurprogramma's (11.x) wilt u misschien ook proberen setString() . te gebruiken en getString() op de CLOB-kolom.

De vergrendeling van de rij zou alleen nodig moeten zijn als u een LOB-locator gebruikt die u wilt behouden tijdens een transactie die meer dan één verklaring omvat (althans dat is mijn begrip van de gekoppelde verwijzing naar de handleiding).




  1. MySql-offsetquery werkt niet

  2. Wat zijn de kosten van het indexeren van meerdere db-kolommen?

  3. Verwijzend naar sessievariabelen (\set var='value') uit PL/PGSQL

  4. CASESTUDY:ARKWARE MS ACCESS CRM