peut oci pilote pour 11g (odbc5.jar) travailler avec le client 10g?
Question
Je dois vous connecter à Oracle9,10 et 11 dans mon java application.Le client sera toujours présent lorsque l'application sera exécutée et je veux que l'application fonctionne seulement avec le nom d'utilisateur, mot de passe et l'instance (spécifié dans tnsnames.ora ) .Hence Je voudrais les pilotes oci avec une chaîne de connexion de type: jdbc: oracle: oci: @testora .Im en utilisant le pilote: oracle.jdbc.driver.OracleDriver. J'ai un client 10g et je utilise jdk1.5. Quand j'utilise le pot de ojdbc14 de chemin lib client l'application fonctionne.
Mais si j'utilise le pilote ojdbc5 alors l'application échoue Exception dans le thread "principal" java.lang.UnsatisfiedLinkError: pas ocijdbc11 en java. library.path exception.
Qu'est-ce que je cherche est un moyen d'emballer un pot (ojdbc5 / ojdbc14) et un seul pilote qui utilisera les pilotes oci pour se connecter au client qui est présent sur la machine locale (9/10/11) .C'est la façon dont je préférerais.
Si ce n'est pas possible puis-je rechercher la boîte unix pour la version oracle, ramasser le pot correct et ensuite l'utiliser dans classpath lors de l'invocation de l'application qui est au format jar?
Merci, Fell
La solution
java.lang.UnsatisfiedLinkError: pas ocijdbc11 dans java.library.path
Cela signifie que vous manque une DLL (ocijdbc11.dll) dans le chemin de la bibliothèque Java. Assurez-vous que vous avez cette DLL et démarrez votre programme comme celui-ci:
java -Djava.library.path=C:\mydirwiththedll com.mypackage.MyProgram
Autres conseils
ojdbc5.jar est destiné à travailler avec jdk1.5.x soit vous connectez à Oracle 10 ou 11g ne devrait pas d'importance, ojdbc14.jar était destiné à jdk1.4.x