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

Übergeben großer BLOBs an gespeicherte Prozeduren

Wenn die Verwendung von Java eine Option ist, können Sie ein InputStream-Objekt an ein PreparedStatement übergeben, um ein Blob-Feld zu füllen. So etwas, Ausnahmebehandlung und alles andere, was hinzugefügt werden muss:

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();

Ich denke, Java wird es mit Puffern machen und nicht die ganze Datei in den Speicher laden.