Oracle
 sql >> Base de Dados >  >> RDS >> Oracle

Passando BLOBs grandes para o procedimento armazenado


Se usar Java for uma opção, você poderá passar um objeto InputStream para um PreparedStatement para preencher um campo Blob. Algo assim, tratamento de exceção e todas as outras coisas a serem adicionadas:
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();

Acho que o Java fará isso usando buffers e não carregará o arquivo inteiro na memória.