【发布时间】:2015-03-16 13:22:54
【问题描述】:
能否请您告诉我如何使用 Python/Jython 连接到 Oracle 实例?
完全安装 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
您能否就如何解决此问题提供帮助/建议?
【问题讨论】:
-
请参阅我的回答 here 关于在 *nix 上为 JDBC 设置 Jython。您需要在 CLASSPATH 中包含
/usr/lib/oracle/12.1/client64/lib/ojdbc6.jar(而不是我提到的 UCanAccess 的 JAR)。请注意,它使用from com.ziclix.python.sql import zxJDBC。另请注意,调用 Jython 是通过jython命令完成的,而不是java -jar jython.jar(至少对我来说是这样)。 -
感谢上帝。如果可能的话,我需要一些额外的帮助。
-
UCanAccess,我猜是不需要的,因为与 MS Access DB 无关
-
您能解释一下如何调用 jython 并更新 CLASSPATH 吗?
-
试试
export CLASSPATH=/usr/lib/oracle/12.1/client64/lib/ojdbc6.jar
标签: python oracle jdbc classpath jython