1

作为 python 的新手,尝试编写 python 代码以连接到 oracle 数据库而不使用任何 Instant 客户端。我正在使用 jaydebeapi 和 jpype,正如本论坛的其他一些主题中所建议的那样。经过很多障碍,我现在陷入了这个错误。这是代码。

import jaydebeapi
import jpype
try:
    con = jaydebeapi.connect('oracle.jdbc.driver.OracleDriver', ['windb19.ams.com', 'AA3112D1OS', 'advantage', 'C:\Tools\ojdbc8.jar'])
    cur = con.cursor()
    cur.execute('select * from r_sc_user_info')
except Exception as e:
    print e

我收到的错误如下

C:\Python27\python.exe C:/Project/Robot_Framework/SampleProject/CustomLibraries/DBLibrary.py
java.lang.Exception: Class oracle.jdbc.driver.OracleDriver not found

Process finished with exit code 0
4

1 回答 1

3

由于我无法修改 中的任何内容,因此Environment variables根据政策,我必须修改以下代码以使其正常工作。我必须保持与ojdbc8.jar这个 python 文件相同的路径并添加以下代码行。

jar=os.getcwd()+'\ojdbc8.jar'
args = '-Djava.class.path=%s' % jar

jvm_path = jpype.getDefaultJVMPath()
jpype.startJVM(jvm_path, args)

try:
    con = jaydebeapi.connect("oracle.jdbc.driver.OracleDriver", "jdbc:oracle:thin:@HOSTNAME",["USERID", "PASSWORD"], jar)
于 2018-10-04T04:39:20.053 回答