jsp-develop.de presents:

BLOB´s in Oracle Datenbank einfügen

von Wolfgang,  17.08.2004 15:51:33

Bin im Zuge meiner Arbeit auf das Problem gestoßen, Dateien in einer Oracle Datenbank zu speichern und möchte hier ein kurzes Code Snippet zeigen:

//erzeugen eines leeren BLOB in der Tabelle
String strsql = "UPDATE \"FIELD\" SET \"XML_BLOB\"= EMPTY_BLOB() WHERE \"FIELD_ID\"=1";
   
stmt.executeUpdate(strsql);

//vorbereiten des ResultSet für Einfügen
strsql = "SELECT \"XML_BLOB\" FROM \"EINHEIT\" WHERE \"EINHEIT_ID\"= 1 FOR UPDATE";
rs = (OracleResultSet) stmt.executeQuery(strsql);

if (rs.first()){ //bzw. rs.next()
//hole den BLOB aus dem ResultSet
Blob myBlob = rs.getBlob("XML_BLOB"); 
//um den BLOB weiter zu verarbeiten braucht man einen OutputStream

OutputStream blobOutputStream = ((oracle.sql.BLOB)myBlob).getBinaryOutputStream();

byte[] buffer = new byte[10* 1024];

int nread = 0; // Anzahl der gelesenen Bytes 
//eine Datei öffnen
File tempf = new File(path+"temp.xml");
//oder Inhalt aus andrem Stream
item.write(tempf);
                                 
FileInputStream fis = new FileInputStream(tempf);

//Datei in OutputStream Schreiben 
while( (nread= fis.read(buffer)) != -1 )
blobOutputStream.write(buffer, 0, nread);

//aufräumen
rs.close();                                    blobOutputStream.close();
fis.close();
tempf.delete();
}
URL dieses Beitrags:
http://www.jsp-develop.de/forumbeitrag/view/28617/