Oracle
 sql >> Datenbank >  >> RDS >> Oracle

Wie platziere ich große (oder zumindest nicht triviale) BLOBs mit JDBC in Oracle?

Ich glaube nicht, dass Sie ein BLOB/CLOB mit JDBC in einem einzigen Schritt aktualisieren oder einfügen können (für Daten> 4k). Aus diesem Beispiel von Oracle , müssen Sie anscheinend:

  1. Fügen Sie ein leeres LOB mit der SQL-Funktion empty_clob() ein
  2. Wählen Sie das eingefügte LOB aus, um es zu aktualisieren
  3. erhalten Sie das LOB in Java mit ResultSet.getBlob() Holen Sie sich dann den Ausgabestrom mit blob.setBinaryStream (seit oracle.sql.BLOB.getBinaryOutputStream() ist veraltet)
  4. in diesen Ausgabestrom schreiben
  5. Schließen Sie den Ausgabestream, wenn Sie fertig sind

Sie würden etwas Ähnliches in Pl/SQL tun (ein LOB FÜR UPDATE AUSWÄHLEN und dann darauf schreiben).