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

Wie fügt man eine riesige Datei in BLOB (Oracle) ein, ohne die vollständige Datei in den Speicher zu laden?

Für die da draußen...

Hier ist der Prozess, um es zu erledigen:

stmt.execute ("INSERT INTO my_blob_table VALUES ('row1', empty_blob())");
BLOB blob;
cmd = "SELECT * FROM my_blob_table WHERE X='row1' FOR UPDATE";
ResultSet rset = stmt.executeQuery(cmd);
rset.next();
BLOB blob = ((OracleResultSet)rset).getBLOB(2);
File binaryFile = new File("john.gif");
System.out.println("john.gif length = " + binaryFile.length());
FileInputStream instream = new FileInputStream(binaryFile);
OutputStream outstream = blob.setBinaryStream(1L);
int size = blob.getBufferSize();
byte[] buffer = new byte[size];
int length = -1;

Quelle:http://docs.oracle.com /cd/B19306_01/java.102/b14355/oralob.htm#CHDFHHHG