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

Speichern Sie einen Blob von Java auf BD:Die Datengröße ist größer als die maximale Größe für diesen Typ, wenn dies eindeutig nicht der Fall ist

Nicht die Antwort

Sie können die Bytes eines Bildes nicht (richtig) in einem String halten. Sie könnten zuerst das byte[] codieren mit Base64 in einen String. Vielleicht verstehe ich das falsch und du hast es richtig gemacht. Überprüfen Sie, ob Sie jede Ausnahme protokolliert haben.

Neben der veralteten Sun-Version (die nicht in jedem JDK verfügbar ist) gibt es noch einige andere Base64-Konvertierungen. In JavaEE:

import javax.xml.bind.DatatypeConverter;
String data = "...";
byte[] bytes = DatatypeConverter.parseBase64Binary(data);
String data = DatatypeConverter.parseBase64Binary(bytes);

Können Sie die Daten nicht als binäres Blob ohne Base64-Codierung speichern? Es würde zumindest Platz sparen.

Ein anderer Fehler könnte das Wachsen von wiederverwendeten ByteArrays oder ein anderer trivialer Fehler sein.