ORA-12560:TNS:协议适配器错误问题:Excel 64位/ Windows 10 64位

时间:2018-11-12 11:53:00

标签: excel oracle

我正在运行用于通过32位Excel连接到Oracle数据库时使用的VBA脚本,但是现在我正在使用64位Excel。

VBA代码: 设置cn1 = New ADODB.Connection 设置rs1 =新的ADODB.Recordset cn1.ConnectionString =“驱动程序= {Microsoft ODBC for Oracle};服务器= BR1P1; Uid = BR1USER; Pwd = myPass” cn1。打开 rs1.Open Query,cn1

当我执行“ cn1.open”时,出现此错误: “运行时错误'-214746 ... [Microsoft] [ODBC驱动程序管理器]找不到数据源名称,未指定默认驱动程序”

然后,我尝试解决添加新数据源的问题: ODBC数据源管理员(64位)>文件DSN>单击添加...>从列表中选择:Oracle em OraClient11g_home1(“ Oracle em”表示“ Oracle for”,我的操作系统以葡萄牙语表示)> Next>浏览至文件:“ C:\ Windows \ System32 \ odbcad32.exe”>下一步>完成

这样做,系统将为我提供驱动程序名称:“ Oracle em OracleClient11g_home1”

之后,将提示您输入服务名称,用户名和密码。我根据我的TNSNAMES.ORA通知服务器名称

回到VBA,我根据驱动程序名称更改了代码: cn1.ConnectionString =“驱动程序= {Oracle em OracleClient11g_home1}”

现在在VBA中执行“ cn1.Open”时,我收到此新错误消息:

“运行时错误'-214746 ... [Oracle] [ODBC] ORA-12560:TNS:协议适配器错误”

我的TNSNAMES.ORA文件是这样的: BR1P1 =(描述=(地址列表=(地址=(协议= TCP)(主机= myhost.com)(端口= 1575)))(连接数据=(服务器=专用)(服务名称= BR1P1)))

好吧,我只是坚持这一点。请对此表示感谢。 我将MS Office更改为64位版本后,真是很痛苦。

1 个答案:

答案 0 :(得分:0)

Microsoft ODBC for Oracle仅适用于32位,因此您不能将其用于64位Excel。

如果要使用Oracle的64位ODBC驱动程序,则必须安装它。从64-bit Oracle Data Access Components (ODAC) Downloads

下载驱动程序

Oracle ODBC驱动程序的ConnectionString格式与Microsoft ODBC驱动程序的格式不同,请参见

因此,对于Oracle,您的ConnectionString

Driver={Microsoft ODBC for Oracle};Server=BR1P1;Uid=BR1USER;Pwd=myPass

将是

Driver={Oracle em OracleClient11g_home1};DBQ=BR1P1;Uid=BR1USER;Pwd=myPass