sql >> Database >  >> RDS >> Oracle

hoe een enorm bestand in te voegen in BLOB (Oracle) zonder het volledige bestand in het geheugen te laden?

Voor degenen die er zijn...

Hier is het proces om het voor elkaar te krijgen:

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;

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



  1. Postgresql. MAAK CAST 'karakter variërend' tot 'geheel getal'

  2. Oracle 10g:kunnen CLOB-gegevenslengtes kleiner zijn dan 4.000?

  3. Waarom is executemany traag in Python MySQLdb?

  4. Uitzondering in hoofdthread org.hibernate.MappingException:onbekende entiteit