python-java.lang.Exception:找不到类oracle.jdbc.driver.OracleDriver

时间:2018-07-25 09:16:33

标签: python database jpype

作为python的新手,尝试编写python代码以连接到oracle数据库,而无需使用任何Instant Client。我正在按照本论坛其他主题中的建议使用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

1 个答案:

答案 0 :(得分:0)

由于按照政策我无法修改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)