Oracle
 sql >> Base de données >  >> RDS >> Oracle

Stocker un blob de Java vers BD :la taille des données est supérieure à la taille maximale pour ce type alors que ce n'est clairement pas le cas

Pas la réponse

Vous ne pouvez pas conserver les octets d'une image dans une chaîne (correctement). Vous pouvez d'abord encoder le byte[] en utilisant Base64 dans une chaîne. Peut-être que j'ai mal compris, et vous l'avez fait correctement. Vérifiez que vous avez enregistré toutes les exceptions.

Il existe d'autres conversions Base64 en plus de la version obsolète de Sun (qui n'est pas disponible dans tous les JDK). En JavaEE :

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

Ne pouvez-vous pas stocker les données sous forme de blob binaire, sans encodage base64 ? Cela permettrait au moins d'économiser de l'espace.

Une autre erreur pourrait être la croissance de ByteArray réutilisés ou quelque chose d'autre bogue trivial.