You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

64位Excel VBA使用Oracle InstantClient连接Oracle数据库问题求助

64位Excel VBA连接Oracle数据库解决方案

错误原因说明

  • 运行时错误3706:未安装对应版本的Oracle OLEDB Provider组件,或连接串中填写的Provider/Driver名称与本地实际安装的驱动名称不匹配
  • 运行时错误-2147217805 (80040e73):原有连接串错误将SERVICE_NAME配置为SID,导致数据库识别连接信息失败

可用连接串配置

优先推荐使用已验证可用的Oracle ODBC驱动连接,无需额外安装组件,稳定性更高。使用前需先打开64位ODBC数据源管理器,在「驱动程序」标签页确认Oracle驱动的准确名称,一般格式为Oracle in <你的InstantClient安装目录名>。

方式一:使用Oracle ODBC驱动连接

基于TNS名称的连接串(依赖tnsnames.ora配置)

Database_Connection_String = "Driver={Oracle in Oracle ODBC};Dbq=DATAVIEW;Uid=MyName;Pwd=MyPass;"

注意:将大括号内的驱动名替换为你本地ODBC管理器中显示的实际驱动名称

独立连接串(无需tnsnames.ora配置)

Database_Connection_String = "Driver={Oracle in Oracle ODBC};Dbq=//10.x.x.x:1521/MyStats;Uid=MyName;Pwd=MyPass;"

方式二:使用Oracle OLEDB Provider连接

使用前需额外安装与InstantClient v21.3版本匹配的Oracle OLEDB组件(属于ODAC安装包的一部分)。

基于TNS名称的连接串(依赖tnsnames.ora配置)

Database_Connection_String = "Provider=OraOLEDB.Oracle;Data Source=DATAVIEW;User Id=MyName;Password=MyPass;"

独立连接串(无需tnsnames.ora配置)

Database_Connection_String = "Provider=OraOLEDB.Oracle;Data Source=(DESCRIPTION=(ADDRESS_LIST=(ADDRESS=(PROTOCOL=TCP)(HOST=10.x.x.x)(PORT=1521)))(CONNECT_DATA=(SERVICE_NAME=MyStats)));User Id=MyName;Password=MyPass;"

注意事项

  • 所有系统环境变量修改完成后,必须重启Excel才能生效
  • 禁止使用微软官方废弃的Microsoft ODBC for Oracle驱动,该驱动仅支持32位环境

内容的提问来源于stack exchange,提问作者Fereidoun Sadr

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.09.24 05:06:05