我正在尝试从我的Excel宏连接到Oracle DB。当我在安装了Oracle组件的笔记本电脑上运行它时,此宏运行正常。
当我在没有安装Oracle组件的笔记本电脑上运行它时会抛出一个错误,指出Could not connect to the database. Check your username and password. Oracle client and networking components were not found. These components are part of Oracle 7.3.3 or later client software installation
。
我正在尝试使用以下参数连接到Oracle: -
Dim dbConnect As ADODB.Connection
Dim strUserName As String
Dim strPassword As String
Dim strDatabase As String
Set dbConnect = New ADODB.Connection
dbConnect.Open ( _
"User ID=" & strUserName & "; Password=" & strPassword & "; Data Source=" & strDatabase & "; Provider=msdaora")
我们的大多数用户都没有安装Oracle。
答案 0 :(得分:0)
如果没有相应的组件,则无法访问Oracle数据库。
ADO is just a programming interface访问各种数据提供者,因此它取决于较低级别的组件。
Provider=msdaora
参数指定"Microsoft OLE DB Provider for Oracle"并使用OLE DB层将数据访问组件表示为面向对象的API。
反过来,OLE DB is just an object model代表底层数据访问级别。对于Oracle数据库,此级别由Oracle客户端组件表示,因此如果要连接到Oracle,则需要安装它。
另请注意,MS OLE DB Provider for Oracle have a number of limitations, outdated and not supported并使用非常旧的OCI7调用接口。
要简化部署,您可以使用Oracle Data Access Components (ODAC) with Xcopy Deployment。它的权重小于80MB,无需运行Universal Installer应用程序即可部署。如readme.txt文件中所述,它只需3个步骤即可安装:
将ODAC(xcopy版本)zip文件下载到用于暂存ODAC产品的目录。
解压缩ODAC(xcopy版)zip文件以展开内容。
执行install.bat以安装和配置ODAC产品。
此组件替代Microsoft OLE DB提供程序,并且已包含可从Excel VBA应用程序访问的最新Oracle客户端实现(查找连接字符串格式here)。