没有Oracle Client的Python Oracle DB Connect

时间:2019-09-04 13:40:07

标签: python database oracle connect cx-oracle

我正在尝试使用python构建一个应用程序,该应用程序将使用安装在公司服务器中的Oracle数据库,并且我正在开发的应用程序可以在任何本地计算机上使用。

是否可以使用Python连接到oracle DB,而无需在将要存储和执行python应用程序的本地计算机上安装oracle客户端?

就像Java中一样,我们可以使用jdbc瘦驱动程序来达到相同的效果,如何在Python中实现它。

感谢您的帮助

安装oracle客户端,可以通过cx_Oracle模块进行连接。 但是,在未安装客户端的系统中,我们如何连接到数据库。

2 个答案:

答案 0 :(得分:2)

您可以使用JDBC

"""
Connect from Python to Oracle via JDBC
Get JDBC-driver here: https://download.oracle.com/otn/utilities_drivers/jdbc/193/ojdbc8-full.tar.gz
Python 3.7.4
conda install -c conda-forge jaydebeapi==1.1.1 --force-reinstall -y
conda install -c conda-forge JPype1==0.6.3 --force-reinstall -y
"""
import jpype
import jaydebeapi

JHOME = jpype.getDefaultJVMPath()
jpype.startJVM(JHOME, '-Djava.class.path=/ojdbc8-full/ojdbc8.jar')
con = jaydebeapi.connect('oracle.jdbc.driver.OracleDriver',
                         'jdbc:oracle:thin:user/pass@host_ip:1521:SID')
cur = con.cursor()
cur.execute('select dummy from dual')
r = cur.fetchall()
print(r[0][0])
cur.close()
con.close()

答案 1 :(得分:1)

如果没有任何oracle提供的软件,java可以连接到oracle是不正确的。

它需要兼容版本的ojdbc * .jar进行连接。同样,python的cx_oracle库需要从oracle安装oracle即时客户端软件。

即时客户端是免费软件,占用空间小。