O driver OCI para 11G (ODBC5.JAR) pode funcionar com o cliente 10G?
Pergunta
Eu preciso me conectar ao Oracle9,10 e 11 no meu aplicativo Java. O cliente sempre estará presente onde o aplicativo será executado e eu quero que o aplicativo trabalhe apenas com nome de usuário, senha e instância (especificado em tnsnames.ora). Portanto, Eu gostaria de drivers OCI com uma sequência de conexão do tipo: JDBC: Oracle: OCI: @Testora .im usando o driver: oracle.jdbc.driver.oracledriver. Eu tenho um cliente 10G e estou usando o JDK1.5. Quando eu uso o jar OJDBC14 do cliente Lib Path, o aplicativo é executado.
Mas se eu usar o driver OJDBC5, o aplicativo falhará com a exceção no thread "main" java.lang.unsatisfiedlinkError: sem ocijdbc11 em java. Exceção da biblioteca.Path.
O que estou procurando é uma maneira de empacotar uma única jarra (ojdbc5/ojdbc14) e um único driver que usará drivers de OCI para se conectar ao cliente que está presente na máquina local (9/10/11). Essa é a maneira como eu preferiria isso.
Se isso não for possível, posso pesquisar na caixa UNIX pela versão Oracle, pegue o frasco correto e depois usá -lo no ClassPath ao invocar o aplicativo que está no formato JAR?
Obrigado, caiu
Solução
java.lang.unsatisfiedlinkerror: sem ocijdbc11 em java.library.path
Isso significa que você está perdendo uma DLL (OCIJDBC11.DLL) no caminho da biblioteca Java. Certifique -se de ter essa DLL e inicie seu programa como este:
java -Djava.library.path=C:\mydirwiththedll com.mypackage.MyProgram
Outras dicas
OJDBC5.JAR deve trabalhar com JDK1.5.x ou você está se conectando ao Oracle 10 ou 11g não deve importar, ojdbc14.jar foi destinado a JDK1.4.x