2015-01-18 2 views
1

Не могли бы вы рассказать мне о том, как подключиться к экземпляру Oracle с помощью Python/Jython?python: как подключиться к базе данных oracle с помощью jdbc

После установки полностью Jython, сайт Oracle (http://www.oracle.com/technetwork/articles/dsl/mastering-oracle-python-providers-1395759.html) предлагает: Все, что вам нужно предоставить, чтобы убедиться, что ojdbc6.jar находится в CLASSPATH или JYTHONPATH так, чтобы водитель соединение может быть решена.

Я прочитал, что при использовании опции -jar игнорируется переменная среды CLASSPATH. Так что я сделал, как:

java -classpath /usr/lib/oracle/12.1/client64/lib/ojdbc6.jar -jar jython.jar 

from java.sql import DriverManager 
db_connection = DriverManager.getConnection("jdbc:oracle:thin:@xxxxx:1521/P1FNTPE", "xxx", "xxx") 
Traceback (most recent call last): 
    File "<stdin>", line 1, in <module> 
    at java.sql.DriverManager.getConnection(DriverManager.java:596) 
    at java.sql.DriverManager.getConnection(DriverManager.java:215) 
    at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method) 
    at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:57) 
    at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43) 
    at java.lang.reflect.Method.invoke(Method.java:606) 

java.sql.SQLException: java.sql.SQLException: No suitable driver found for jdbc:oracle:thin:@xxxxx:1521/P1FNTPE 

Не могли бы вы, пожалуйста, помогите/посоветуйте мне о том, как решить эту проблему?

+0

См. Мой ответ [здесь] (http://stackoverflow.com/a/25614063/2144390) о настройке Jython для JDBC на * nix. Вам нужно будет иметь '/ usr/lib/oracle/12.1/client64/lib/ojdbc6.jar' в вашем CLASSPATH (вместо JAR, который я упоминаю для UCanAccess). Обратите внимание, что он использует 'from com.ziclix.python.sql import zxJDBC'. Также обратите внимание, что вызов Jython выполняется с помощью команды 'jython', а не' java -jar jython.jar' (по крайней мере, так оно и было для меня). –

+0

Спасибо, Горд. Мне понадобится дополнительная помощь, если это возможно. – iamsterdam

+0

UCanAccess, я думаю, не нужен, потому что не о MS Access DB – iamsterdam

ответ

0

Как уже упоминалось в вопросе, полный путь к файлу JAR для драйвера JDBC должен присутствовать либо в переменной CLASSPATH, либо в переменной JYTHONPATH, чтобы скрипт Jython мог ее найти. Эти переменные могут быть модифицированы различными способами в зависимости от окружающей среды (оболочки) используется, как описано в руководстве джата здесь:

PATH and CLASSPATH

В данном конкретном случае, просто добавив строку

export CLASSPATH=/usr/lib/oracle/12.1/client64/lib/ojdbc6.jar 

в один из файлов запуска (например, ~/.bash_profile, ~/.profile, ~/.bashrc, ...), а затем снова выполнил вход (или выполнил source в файле).

Смежные вопросы