Oracle:ORA-12154:TNS问题:Excel 64位/ Windows 10 64位

时间:2018-11-06 01:53:09

标签: excel oracle

我使用的是Windows 10 64位和Office 2016 64位。 只需使用Excel连接到Oracle 11g(11.2.0)数据库(以使用Power Query / BI)。

首先安装它: 适用于Microsoft Windows(x64)的Oracle Database 11g第2版客户端(11.2.0.1.0) (https://www.oracle.com/technetwork/database/enterprise-edition/downloads/112010-win64soft-094461.html

我遇到了缺少64位组件的错误,然后我安装了: 适用于Windows x64的64位ODAC 11.2版本6(11.2.0.4.0)Xcopy (https://www.oracle.com/technetwork/database/windows/downloads/index-090165.html

,现在出现错误是: “ [DataSource.Error] Oracle:ORA-12154:TNS:无法解析指定的连接标识符”

我已经使用Windows 7 64位HOWEVER和Office 2016 32位版本进行了相同的操作,Oracle客户端也是如此,并且未安装ODAC。 它曾经非常好用。

我有相同的TNSNAMES.ORA文件,所有条目都很好,因为我知道它适用于32位办公室。因此,TNSNAMES.ORA文件不会成为问题(位置> C:\ oracle \ product \ 11.2.0 \ client_1 \ Network \ Admin)。

我从Stack帖子中尝试了很多东西,例如环境变量,注册表更改,安装检查...,但是我真的不明白。只需Excel 64位才能与oracle 11g连接,仅此而已,但只有32位有效...

这似乎是一个非常具体的问题,这让我发疯。如果有人可以帮助我,请使用“简单”的说明,我将非常感激。

2 个答案:

答案 0 :(得分:0)

由于您没有提供太多信息,因此很难为您提供帮助,因此我将给出一些更通用的提示。

所有组件必须在同一体系结构中。如果您的Excel / Office是64位的,则Oracle客户端和ODAC也必须也是64位的。在任何情况下,数据库都可以是32位或64位。

当您想从Excel连接到Oracle数据库时,可以使用ODBC驱动程序或OLE DB驱动程序。两者都可以从Microsoft和Oracle获得。正如您没有提到任何ODBC一样,我假设您使用OLE DB驱动程序。

Windows附带了Microsoft ODBC和OLE DB驱动程序,但是它们很旧(ODBC is deprecatedOLE DB is deprecated),并且它们仅适用于32位。这就是为什么仅使用Oracle InstantClient就可以将32位Excel连接到Oracle的原因。

如果您使用的是64位,则必须使用Oracle驱动程序,这也意味着您必须单独安装它,因为它们不是标准Windows安装的一部分-这是您安装的ODAC软件包。

现在,当您收到ORA-12154: TNS:could not resolve the connect identifier specified错误时,安装似乎可以正常进行。上面不同的驱动程序具有不同的路径来找到tnsnames.ora文件,请参见Determining location of relevant tnsnames.ora file

创建环境变量TNS_ADMIN=C:\oracle\product\11.2.0\client_1\Network\Admin,因为环境变量的优先级似乎高于所有其他设置。我认为您的应用程序应该能够解析别名。否则,您的tnsnames.ora文件中的数据可能是错误的(也许是错字)

答案 1 :(得分:0)

我安装了32位和64位Oracle客户端的Windows-10 64位。在IIS上托管后,我能够连接Toad并将asp.net与oracle连接,但是通过IIS-Express在Visual Studio 2017中运行时,我遇到了TNS连接错误。

安装“适用于Windows x64的64位ODAC 12c第2版(12.1.0.1.2)”为我解决了此问题。