sql >> Base de Datos >  >> RDS >> Oracle

Pasar BLOB grandes a Procedimiento almacenado

Si usar Java es una opción, puede pasar un objeto InputStream a un PreparedStatement para llenar un campo Blob. Algo como esto, manejo de excepciones y todas las demás cosas que se agregarán:

Connection con = someDataSource.getConnection();
String sql = "INSERT INTO MY_TABLE(MY_BLOB) VALUES(?)";
PreparedStatement ps = con.prepareStatement(sql);
InputStream fis = new FileInputStream("MyBigFile.big");
ps.setBlob(1, fis);
ps.executeUpdate();

Creo que Java lo hará usando búferes y no cargará todo el archivo en la memoria.