Frage

Ich lese Datei von ResultSet und es ist erforderlich Datei in Oracle-Datenbank gespeichert werden.

...
ResultSet rs = ...
java.sql.Blob myfile = rs.getBlob("field")
java.io.OutputStream os = ((oracle.sql.BLOB) myfile).getBinaryOutputStream();

ich bekomme diese Fehlermeldung

java.lang.ClassCastException

Jede haben Lösung für dieses? Dank!

War es hilfreich?

Lösung 3

Ich habe die Lösung gefunden. Ich möchte mit denen teilen, die dieses Problem hat.

Der Code zu bekommen Output von Oracle Blob ist:

java.io.OutputStream os = ((oracle.sql.BLOB) myBlob).setBinaryStream(1L);

setBinaryStream () tatsächlich zurückkehr java.io.OutputStream Objekt

Andere Tipps

java.sql.Blob href="http://java.sun.com/javase/6/docs/api/java/sql/Blob.html" rel="nofollow noreferrer"> ist eine Schnittstelle . Vermutlich ist die Umsetzung in Ihrem ResultSet zurück ist eine andere Implementierung oracle.sql.BLOB?

Was ist myfile.getClass() zurückkehren?

Sie scheinen keine oracle.sql.BLOB haben es (wenn Sie getan haben, sollte es funktionieren, BLOB implementiert Blob). Was bedeutet der Classcast sagen, es ist?

Welche Version von Oracle und welcher Version der JDBC-Treiber verwenden Sie?

getBinaryOutputStream sowieso veraltet ist, sollten Sie setBinaryStream in der JDBC (3.0) Schnittstelle, die wahrscheinlich die Notwendigkeit, auf all Oracle-interne Klasse zu gehen entfernt.

Lizenziert unter: CC-BY-SA mit Zuschreibung
Nicht verbunden mit StackOverflow
scroll top