暂无图片
暂无图片
暂无图片
暂无图片
暂无图片

Oracle ORA-12154: TNS: 无法解析为ODBC指定的连接标识符

ASKTOM 2018-11-15
953

问题描述

问候,

我在尝试连接到MS Access 2016中的Oracle instantclient 10.1时收到以下错误:

ORA-12154: TNS: 无法解析指定的连接标识符 [#12154) [微软][ODBC驱动程序管理器] SQLSetConnectAttr失败IM006 0 [微软][ODBC驱动程序管理器] 驱动程序的SQLSetConnectAttr失败 (#0)

我已经通过查看Oracle文档,OTN和内部资源咨询来解决该问题已有一段时间了,但是所有尝试都在尝试。也许我的问题的一部分是缺乏对Oracle instantclient,ODBC和系统变量之间的大局的充分了解。

希望以下背景有助于解决我的问题:

成功安装了64位Oracle instantclient,以在窗口7上的64位 “Toad for Oracle” 中使用,并且我一直在使用 “Toad for Oracle” 2014年。

需要通过以下步骤安装32位Oracle instantclient,以便通过ODBC在32位MS访问2016中使用:

1.下载了以下即时客户端包到我的Window 7:

版本10.1.0.5
Instant Client Package - Basic: 运行OCI、OCCI和jdbc-oci应用程序所需的所有文件
instantclient-basic-win32-10.1.0.5-20060419.zip (31,926,105字节)


即时客户端包-ODBC: 用于启用ODBC应用程序的附加库
instantclient-odbc-win32-10.1.0.5-20060419.zip (666,571字节)



2.将两个zip文件复制到以下文件夹:
C:\ Oracle \ INS_ODBC \ instantclient-basic-win32-10.1.0.5-20060419.zip
C:\ Oracle \ INS_ODBC \ instantclient-odbc-win32-10.1.0.5-20060419.zip

3.将Oracle Instantclient 10.1和ODBC的软件包解压缩到单个目录中,例如instantclient_10_1:

C:\ Oracle \ INS_ODBC \ instantclient-basic-win32-10.1.0.5-20060419 \ instantclient10_1
C:\ Oracle \ INS_ODBC \ instantclient-odbc-win32-10.1.0.5-20060419 \ instantclient10_1

4.将两个解压缩文件从步骤 #3复制到C:\ Oracle_ODBC

5.以系统管理员身份登录以将 “C:\ Oracle_ODBC;” 添加到环境变量中路径的开头。

6.通过运行以下文件安装instantclient ODBC:

C:\ Oracle_ODBC \ odbc_install.exe

最后但并非最不重要的一点是,以下tnsnames.ora文件的文件夹C:\ Oracle \ Network \ Admin' 在TNS_ADMIN变量名称中定义,并且64位Oracle Instantclient正在使用相同的数据库服务器:

MRS =
(描述 =
(地址列表 =
(地址 = (协议 = TCP)(HOST = mrs.dot.state.ak.us)(PORT = 1521))
)
(连接 _ 数据 =
(服务名称 = dot.state.ak.us夫人)
)
)

专家解答

到目前为止,您所做的一切听起来都是对的。

您是否设置了适当的ODBC数据源?(控制面板 => 行政 => ODBC 32bit)

就大局而言,前提是:

-您创建了一个名为 (说) “ODBC1” 的ODBC DSN
-DSN将绑定到特定的ODBC驱动程序 (Oracle 32位)
-它还将引用提名的TNS条目 (MRS)
-MRS将使用即时客户端连接到Oracle。

所以路径是:

访问 => ODBC1 => MRS tnsnames条目 => sqlnet => 主机mrs.dot.state.ak.us,服务MRS.dot.state.ak.us

ORA-12154的意思是你说:

“我想说一个XXX,我不能在tnsnames.ora中找到任何叫做XXX的东西”

所以原因可能是:

-找不到tnsnames.ora,或者使用了错误的
-可以找到tnsnames.ora,但没有引用任何称为XXX的内容

所以

1) 转到ODBC admin下的Drivers选项卡-确保Oracle在那里 (确认安装正确)
2) 确保将TNS_ADMIN设置为机器范围 (不仅适合您),因为ODBC驱动程序需要注意
3) 确保您创建的ODBC DSN使用的是32位oracle驱动程序,并以MRS作为Oracle服务名称

希望这有所帮助
文章转载自ASKTOM,如果涉嫌侵权,请发送邮件至:contact@modb.pro进行举报,并提供相关证据,一经查实,墨天轮将立刻删除相关内容。

评论