Pourquoi je ne peut pas lancer de BLOB oracle de java en natif Blob
Je suis de la lecture du fichier de jeu de résultats et il est nécessaire d'enregistrer le fichier dans la Base de données Oracle.
...
ResultSet rs = ...
java.sql.Blob myfile = rs.getBlob("field")
java.io.OutputStream os = ((oracle.sql.BLOB) myfile).getBinaryOutputStream();
Je reçois ce message d'erreur
java.lang.ClassCastException
Quelqu'un a une solution à cela? Merci!
OriginalL'auteur netic | 2008-12-18
Vous devez vous connecter pour publier un commentaire.
java.sql.Blob
est une interface. Sans doute la mise en œuvre retourné dans votreResultSet
est une mise en œuvre différente deoracle.sql.BLOB
?Ce n'
myfile.getClass()
retour?OriginalL'auteur Dan Vinton
Vous semblent ne pas avoir un oracle.sql.BLOB (si vous l'avez fait, il doit travailler, BLOB implémente Blob). Ce qui ne l'ClassCastException disent que c'est?
Quelle version d'Oracle et quelle est la version du pilote JDBC utilisez-vous?
getBinaryOutputStream est obsolète de toute façon, vous devez utiliser setBinaryStream dans JDBC (3.0) de l'interface, ce qui a probablement supprime le besoin d'aller à l'Oracle de la classe interne.
OriginalL'auteur Thilo
J'ai trouvé la solution. J'aimerais partager avec ceux qui ont ce problème.
Le code pour obtenir outputstream à partir d'oracle blob est:
setBinaryStream() est en fait le retour de java.io.OutputStream objet
OriginalL'auteur netic