|
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/ |