作为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
答案 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)