我在Access中通过ODBC访问Oracle数据库时遇到问题,希望有人有一些建议.我花了很多时间试图找到解决方案,但没有任何有用的东西出现.
我在ODBC中有一个访问Oracle 9数据库的连接设置.我可以在ODBC管理员上使用Test选项并收到Test Successful消息.我也可以使用SQL * PLUS连接到数据库.但是,当我尝试在Access 2007中创建一个新的链接表并使用ODBC选项时,我尝试连接时出现以下错误:
ODBC – 调用失败.
[Oracle] [ODBC] [Ora] ORA-12154:TNS:无法解析服务名称
(#12154)[Microsoft] [ODBC驱动程序管理器]驱动程序的SQLSetConnectAttr失败IM006 0 [Microsoft] [ODBC驱动程序管理器]驱动程序的SQLSetConnectAttr失败(#0)
我知道TNS查找工作正常,因为ODBC Admin工具和tnsping一样工作.问题是,为什么它在Access之外工作但Access无法做到?
编辑(2012-02-22 15:05):刚尝试在不同的PC上发生同样的事情,虽然另一个用户登录并且连接适用于他们,所以它似乎链接到我的WinXP配置文件.这对你有帮助吗?
任何建议将不胜感激.
BBZ
解决方法
我想我已经解决了这个问题,但需要进行一些挖掘.使用来自Sysinternals的Process Monitor,我发现Access在我的配置文件的“我的文档”文件夹中找到了一个sqlnet.ora文件,并且优先使用它来访问全局tnsnames.ora文件.
我们之前禁用了sqlnet.ora(在Oracle文件夹中重命名了该文件),但是Access显然检查了其他位置.我已重命名该文件,现在可以通过ODBC按预期访问数据库.
有趣的是你可以学到的东西!
希望有人发现这有用的一天.
谢谢阅读BBZ