Python 3.x 如何在Microsoft Azure上配置Oracle驱动程序管理器?

Python 3.x 如何在Microsoft Azure上配置Oracle驱动程序管理器?,python-3.x,oracle,azure,azure-databricks,Python 3.x,Oracle,Azure,Azure Databricks,我有一个在Microsoft Azure中开发的系统,更准确地说是在Databricks中开发的。 我的挑战是连接到外部Oracle数据库,但在多次尝试后,会产生相同的错误: python代码: import pyodbc try1 = 'Devart ODBC Driver for Oracle' try2 = 'Microsoft ODBC for Oracle' try3 = 'Oracle' try4 = 'Oracle ODBC driver for Oracle 11g' conn

我有一个在Microsoft Azure中开发的系统,更准确地说是在Databricks中开发的。 我的挑战是连接到外部Oracle数据库,但在多次尝试后,会产生相同的错误:

python代码:

import pyodbc
try1 = 'Devart ODBC Driver for Oracle'
try2 = 'Microsoft ODBC for Oracle'
try3 = 'Oracle'
try4 = 'Oracle ODBC driver for Oracle 11g'

conn_str = ('DRIVER={'+try3+'};'+'SERVER=server;'+'DATABASE=db;'+'UID=uid;'+'PWD=pwd;')

cnxn = pyodbc.connect(conn_str)
错误消息:

('01000', "[01000] [unixODBC][Driver Manager]Can't open lib 'Oracle' : file not found (0) (SQLDriverConnect)")
有人知道问题是什么吗?我如何在Azure环境中解决问题


非常感谢

在Databricks中安装ODBC驱动程序有点麻烦,因为您必须提供启动bash脚本来安装和配置驱动程序

更简单,因为您只需上载库

因此,如果可能,请使用Spark和JDBC而不是pyodbc。看


如果您需要执行Spark读取和加载以外的操作,则始终可以使用。

默认情况下,Azure Databricks没有安装Oracle ODBC驱动程序

在单个单元格中运行以下命令以在Azure Databricks群集上安装Oracle ODBC驱动程序

%sh    
apt-get -y install unixodbc-dev
/databricks/python/bin/pip install pyodbc
一旦在Azure Databricks群集上安装了Oracle ODBC驱动程序,就可以连接Oracle数据库

有关更多详细信息,请参阅下面的线程,它们解决了类似的问题


希望这有帮助

请将代码和错误消息作为文本而不是图像包含到您的帖子中。我需要在Oracle中使用dynamics参数执行一个过程,我相信这个解决方案对我没有帮助,对吗?Scala/Java和JDBC是一流的Oracle客户机,有很好的文档记录,并且完全受支持。对于复杂的任务,它比pyodbc更好。因此,我不能像你提到的那样使用Spark:“因此,如果可能的话,使用Spark和JDBC代替pyodbc。请参阅“可以使用Spark将表和查询读取到数据帧中,以及将数据帧写入表中。”。但是您不能使用Spark来运行存储过程,您必须“下拉”到Java或Scala并直接使用JDBCAPI。David在给我的链接中说:“我必须执行以下命令之一:”Class.forName(“com.mysql.JDBC.Driver”)或“Class.forName(“org.mariadb.JDBC.Driver”)”。要使用Oracle驱动程序,我知道我必须执行命令“Class.forName(“Oracle.jdbc.driver.OracleDriver”)”,但返回以下错误“java.lang.ClassNotFoundException:Oracle.jdbc.OracleDriver”。我需要在Databricks环境中配置一些东西来安装我需要的驱动程序吗?