我一直很高兴地使用 oracle 客户端附带的驱动程序通过以下连接查询 oracle 数据库:
Set cn = New ADODB.Connection
cn.Open ("Provider=MSDAORA;" & _
"User ID=<userID>;" & _
"Password=<pass>;" & _
"Data Source=<servername>;" & _
"Persist Security Info=False")
...直到我不得不开始通过 python 的 cx_Oracle 连接到同一个数据库。我可能不完全正确,但看来我必须下载并“安装”(将其添加到路径和 oracle_home)oracle 即时客户端才能使其工作。然而,不幸的是,我的 vba 代码似乎停止了工作。现在我得到:。我可以使用其他客户端连接到数据库,这表明数据库很好,所以关于即时客户端的某些东西一定破坏了我的 vba 连接。
同时使用 cx_Oracle 和(excel)vba 连接到 oracle 数据库的人可以对此有所了解吗?你的设置是什么样的,你安装了哪些驱动程序,你是如何设置你的 python 和 vba 环境和连接字符串以使其工作的?谢谢!
编辑:这里有一些额外的信息。我的 Excel 是 32 位的,python 3.5 是 64 位的。我的 Oracle 客户端与我的 excel 一起使用,所以我将不得不假设它也是 32 位的。现在我遇到的问题是,如果我安装 cx_Oracle 和 64 位即时客户端,cx_Oracle 工作但 vba 停止工作。如果我删除即时客户端,vba 会恢复正常,但 python(自然)停止能够预言。