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

Comment placer des BLOB volumineux (ou du moins non triviaux) dans Oracle avec JDBC ?

Je ne pense pas que vous puissiez mettre à jour ou insérer dans un BLOB/CLOB avec JDBC en une seule étape (pour les données> 4k). De cet exemple d'Oracle , il semble que vous deviez :

  1. Insérez un LOB vide avec la fonction SQL empty_clob()
  2. Sélectionnez pour mettre à jour le LOB que vous avez inséré
  3. obtenir le LOB en java avec ResultSet.getBlob() puis récupérez le flux de sortie avec blob.setBinaryStream (depuis oracle.sql.BLOB.getBinaryOutputStream() est obsolète)
  4. écrire dans ce flux de sortie
  5. fermez le flux de sortie lorsque vous avez terminé

Vous feriez quelque chose de similaire en Pl/SQL (SELECT FOR UPDATE un LOB, puis écrivez-y).