Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/excel/28.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Oracle:ORA-12154:TNS问题:Excel 64位/Windows 10 64位_Excel_Oracle - Fatal编程技术网

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

Oracle:ORA-12154:TNS问题:Excel 64位/Windows 10 64位,excel,oracle,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) () 我得到一个丢失64位组件的错误,然后我安装了: 适用于Windows x64的64位ODAC 11.2版本6(11.2.0.4.0)Xcopy () 现在有一个错误: “[Da

我使用的是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) ()

我得到一个丢失64位组件的错误,然后我安装了: 适用于Windows x64的64位ODAC 11.2版本6(11.2.0.4.0)Xcopy ()

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

我已经使用64位Windows 7做了同样的事情,但Office 2016 32位版本和oracle客户端也做了同样的事情,并且它没有安装ODAC。 它曾经工作得很好

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

我从堆栈帖子中尝试了很多东西,比如,环境变量,注册表更改,安装检查。。。但我真的不明白。只需要64位Excel就可以连接到oracle 11g,但只有32位可以工作


这似乎是一个非常具体的问题,让我发疯。如果有人能用一个“简单”的解释来帮助我,我会非常感激。

因为你没有提供太多的信息,所以很难帮助你,所以我会给出一些更一般的提示

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

当您想从Excel连接到Oracle数据库时,可以使用ODBC驱动程序或OLE DB驱动程序。这两种软件都可以从Microsoft和Oracle获得。由于您没有提到任何ODBC,我假设您使用OLEDB驱动程序

Microsoft ODBC和OLE DB驱动程序都随Windows一起提供,但是它们都是旧的(和),并且只存在32位。这就是为什么只需使用Oracle InstantClient就可以从32位Excel连接到Oracle

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

现在,当您收到一个
ORA-12154:TNS:无法解析指定的连接标识符的
错误时,您的安装似乎可以正常工作。上面不同的驱动程序有不同的路径来查找
tnsnames.ora
文件,请参阅


创建一个环境变量
TNS_ADMIN=C:\oracle\product\11.2.0\client\u 1\Network\ADMIN
,因为环境变量似乎比所有其他设置具有最高的优先级。我认为您的应用程序应该能够解析别名。否则,
tnsnames.ora
文件中的数据可能错误(可能是输入错误)

我安装了windows-10 64位,同时安装了32位和64位Oracle客户端。在IIS上托管后,我能够连接Toad并将asp.net与oracle连接,但在visual studio 2017中通过IIS Express运行时,我面临TNS连接错误


为Windows x64安装“64位ODAC 12c版本2(12.1.0.1.2)”为我解决了这个问题

问题解决了!我将HKEY_LOCAL_MACHINE>SOFTWARE>ORACLE>key_odac中的注册表项ORACLE_HOME path更改为“C:\ORACLE\product\11.2.0\client_1\Network\Admin”,原始路径为“C:\ORACLE\”,不知道为什么,但我的用户下的路径为“C:\app\saoeboei\product\11.2.0\client_1”,但没有网络\Admin文件夹,当然也没有TNS文件。我在中更改了注册表项\u OraClient11g\u home1的路径,并使用您提到的路径创建了变量。然而,只有通过更改ODAC注册表的ORACLE_主路径才能做到这一点。非常感谢您的帮助和快速回复。