|
Publicité ' | |||||||||||||||||||||||
|
|
#1 | ||||||
|
Membre émérite
![]() Inscription : septembre 2006 Messages : 679 ![]() |
Bonjour,
j'ai un petit souci qui est plus ou moins contourné mais j'aurai bien aimé le comprendre quand même: J'ai une table Oracle avec 3 colonnes, un Blob, un Number et un Varchar (ça fait très blague belge comme début...) Je fais donc le select des trois colonnes dans mon petit connecteur JDBC, et ensuite je récupère le résultat. Code :
tandis que Code :
Je précise que le getBytes direct marchait avant et qu'on a fait quelques modifs de configuration que j'ai oublié, à la suite de quoi ça s'est mis à merdouiller. Quelqu'un a-t-il déjà vu ça? Quelques détails techniques: - Base Oracle 10g - connecteur ojdbc14.jar - Voici le datasource: Code xml :
Comme je l'ai dit c'est pas très urgent la solution a été trouvée mais du coup je m'inquiète un peu pour la suite, parce que ça semble pas très stable comme système...
__________________
La signature que vous avez demandée n'est pas disponible pour l'instant, veuillez rappeler ultérieurement. |
||||||
|
|
00
|
|
|
#2 |
|
Membre expérimenté
![]() Nicolas Inscription : janvier 2011 Messages : 378 ![]() |
Bonjour,
Pour moi ces deux codes sont radicalement différents. Dans le 1er cas la données est stockée dans un champ binaire qui est stocké dans un champs de type RAW. Et le second un champs stocké dans un BLOB. Peut-être que vous êtes passé d'un champ ROW à BLOB pour des raisons de taille de l'élément stocké en binaire. |
|
|
00
|
|
|
#3 |
|
Membre émérite
![]() Inscription : septembre 2006 Messages : 679 ![]() |
Ah non la base n'a pas changé d'un iota, seule l'application a été modifiée, il a toujours s'agit d'une colonne BLOB, contenant un objet java sérialisé avec les pieds (je n'ai pas la main sur le format ou l'insertion soit dit en passant)...
__________________
La signature que vous avez demandée n'est pas disponible pour l'instant, veuillez rappeler ultérieurement. |
|
|
00
|
|
|
#4 |
|
Membre expérimenté
![]() Nicolas Inscription : janvier 2011 Messages : 378 ![]() |
Effectivement des 2 implémentations devraient fonctionner... du coup je ne vois pas, peut-être un changement de version de ojdbc14.jar...
|
|
|
00
|
|
|
#5 | |
![]() ![]() |
doc de getbyte()
Citation:
De mémoire oracle a deux manière de renvoyer au client les blob: inclu dans le stream, ou sous forme de référence à des streams à redemander au serveur. C'est le serveur qui choisi ce qu'il renvoi en fonction de divers critère. Je suppose que le serveur à décidé qu'à partir de maintenant, un blob de 1000 bytes, c'est via un stream séparé qu'il faut le récupérer.
__________________
⥀⥁ Чиз faq java, cours java, javadoc. Pensez à et ![]() "Votre génitrice tute des pédoncules au pandémonium" (le conjurateur, 1973) |
|
|
|
00
|
|
|
#6 |
|
Membre émérite
![]() Inscription : septembre 2006 Messages : 679 ![]() |
OK, donc d'un point de vue fonctionnel, le getBytes est une très mauvaise idée dans la mesure où on ne peut pas garantir ce qu'on reçoit...
C'est noté, merci! en même temps j'imagine que c'est pour ça qu'on a inventé le getBlob()...
__________________
La signature que vous avez demandée n'est pas disponible pour l'instant, veuillez rappeler ultérieurement. |
|
|
00
|
|
|
#7 |
![]() ![]() |
Plus d'infos d'ailleurs
http://docs.oracle.com/cd/B14117_01/...979/oralob.htm doc du driver oracle, nulle part on appelle resultset.getBytes()
__________________
⥀⥁ Чиз faq java, cours java, javadoc. Pensez à et ![]() "Votre génitrice tute des pédoncules au pandémonium" (le conjurateur, 1973) |
|
|
00
|
Copyright © 2000-2012 - www.developpez.com