Может ли драйвер oci для 11g (odbc5.jar) работать с 10g клиентом? - PullRequest
1 голос
/ 01 сентября 2009

Мне нужно подключиться к Oracle9,10 и 11 в моем java-приложении. Клиент всегда будет присутствовать там, где будет запускаться приложение, и я хочу, чтобы приложение просто работало с именем пользователя, паролем и экземпляром (указанным в tnsnames.ora ). Поэтому я хотел бы получить драйверы oci со строкой подключения типа: jdbc: oracle: oci: @testora. Я использую драйвер: oracle.jdbc.driver.OracleDriver. У меня есть клиент 10g, и я использую jdk1.5. Когда я использую jar ojdbc14 из клиентского пути lib, приложение запускается.

Но если я использую драйвер ojdbc5, приложение перестает работать с Исключение в потоке "main" java.lang.UnsatisfiedLinkError: нет ocijdbc11 в java. library.path исключение.

То, что я ищу, - это способ упаковки одного jar (ojdbc5 / ojdbc14) и одного драйвера, который будет использовать драйверы oci для подключения к клиенту, присутствующему на локальной машине (9/10/11). так, как я бы предпочел.

Если это невозможно, могу ли я найти в окне unix версию oracle, подобрать правильный jar и затем использовать его в classpath при вызове приложения в формате jar?

Спасибо, Fell

Ответы [ 2 ]

1 голос
/ 14 декабря 2009

ojdbc5.jar предназначен для работы с jdk1.5.x, если вы подключаетесь к Oracle 10 или 11g, это не имеет значения, ojdbc14.jar предназначен для jdk1.4.x

1 голос
/ 01 сентября 2009

java.lang.UnsatisfiedLinkError: нет ocijdbc11 в java.library.path

Это означает, что вам не хватает DLL (ocijdbc11.dll) в пути к библиотеке Java. Убедитесь, что у вас есть эта DLL и запустите вашу программу так:

java -Djava.library.path=C:\mydirwiththedll com.mypackage.MyProgram

...