oracle jdbc version du pilote de la folie
Pourquoi diable ne l'Oracle d'offrir un autre(!) version du pilote JDBC, par exemple ojdbc14.jar pour chaque(!) version de base de données?
Les fichiers ont des tailles différentes, et donc probablement un contenu différent.
de fond:
Nous obtenons un hasard et apparemment non reproductible d'erreur disant "numéro non valide" lors de l'enregistrement de données (on devine que c'est le Timestamp). Mais ce n'est pas toute instruction particulière. La plupart du temps, il économise de l'amende juste. Juste une fois par mois, une apparence inoffensive instruction échoue.
J'ai donc eu un oeil de plus près à l'Oracle du site de téléchargement et remarqué qu'aucun des filesizes match malgré de partage de fichiers de même nom.
Notre produit est exécuté sur les bases de données gérées par nos clients, c'est à dire quelle que soit la version du correctif et les clients en cours d'exécution est ce que c'est.
Donc, ce pilote utilisons-nous? La dernière (Oracle 11g) - malgré le fait qu'il est généralement 9i et 10g bases de données?
Pourquoi ne pas simplement de relier toutes les versions de la même "un pilote s'adapte à tous" fichier?
Ou il y a des minutes de différences conduisant à des effets comme de nos erreurs aléatoires?
EDIT: je me suis trompé sur les bases de données 9i.
source d'informationauteur Stroboskop
Vous devez vous connecter pour publier un commentaire.
veuillez consulter le tableau de compatibilité à
http://www.oracle.com/technetwork/database/enterprise-edition/jdbc-faq-090281.html#02_02
Également tenir à l'esprit que l'horodatage type de données n'est disponible que depuis la version 10 d'Oracle.
Lorsque nous avons mis à jour notre base de données Oracle à partir de 8.1.7 à 10.2.0, j'ai été en mesure d'utiliser le même Oracle jdbc driver (ojdbc14.jar). De sorte que leur pilote jdbc supporte tout à fait quelques versions en même temps. Bien sûr, il est possible que certains pilotes sont buggés, mais le plan est de soutenir plus de versions en même temps.
J'ai des problème similaire ici
https://stackoverflow.com/users/1017344/user1017344
Il semble que l'opération non valide à l'intérieur du pilote JDBC
Les nombres dans ojdbc14.jar, ojdbc5.jar, ojdbc6.jar, ojdbc7.jar et ojdbc8.jar reportez-vous à la version du compilateur Java qui a été utilisé. Avec chaque version de Java de nouvelles Api JDBC donc ces chiffres sont utiles pour savoir à quoi s'attendre. Par exemple en Java 8, il existe une nouvelle méthode
executeLargeUpdate
dansjava.sql.PreparedStatement
. Cette méthode sera mise en œuvre dans ojdbc8.jar mais pas dans ojdbc7.jar. Aussi, si votre moteur d'exécution utilise Java 7, alors vous savez que vous ne pouvez pas utiliser ojdbc8.jar sinon, vous allez courir dans unejava.lang.UnsupportedClassVersionError
erreur. Ce sont les raisons pour lesquelles Oracle inclut les dans le bocal. Notez également que si vous voulez savoir à partir de laquelle la Base de données Oracle version le pot vient de vous pouvez exécuterjava -jar ojdbc8.jar
. La Base de données et le pilote sont rétro-compatibles (jusqu'à 1 version majeure) donc, même si c'est recommandé, vous n'avez pas à utiliser la même version du produit sur les deux niveaux.