0

我可以使用 Power Pivot 中的完整连接字符串连接到客户端的 Oracle 数据库。但是,我需要在 Power Query 中进行连接,这在尝试使用完整连接字符串时会引发错误,因为它超过了 128 个字符的限制。所以我尝试在 Power Query 中使用 EZConnect 和 TNS 名称,但两者都生成 ORA-12154 错误消息。当我尝试在 Power Pivot 中使用 EZConnect 或 TNS 名称时,我收到相同的错误消息。TNSnames.ora 文件的副本在同一网络上的至少另一台计算机上成功读取。

确切的错误消息是:
“无法连接。我们在尝试连接时遇到错误。详细信息:'Oracle:ORA-12154:TNS 无法解析指定的连接标识符”

.
系统细节

操作系统
Windows 7 Enterprise 64 位机器

应用程序
Microsoft Excel 2013 32 位

Oracle 11gR202 客户端 32 位
(来自客户端批准的安装站点,即不是 Oracle 下载的可用版本)

Oracle 11gR202 客户端 64 位
(来自客户端批准的安装站点,即不是 Oracle 下载的可用版本)

OraDB11g_home1
(这是来自 oracle 下载站点的原始安装。在安装过程中,安装程序显示许多“找不到文件的错误消息”,我认为这意味着此版本缺少将其标记为已批准用于客户端系统的标志。所以我安装了上面客户端批准的版本,从而能够使用完整的连接字符串通过 Power Pivot 进行连接)。

Instantclient_12_1 (C:\Program Files\instantclient_12_1)

配置
TNS_ADMIN
- 系统和用户变量(TNSnames.ora 文件的相同副本位于两个位置):
C:\oracle\network\admin;
C:\app\nd369d\product\11.2.0\dbhome_1\NETWORK\ADMIN

PATH
- 系统变量:
C:\Oracle\11gR202Client64bit\bin\;
C:\Oracle\11gR202Client32bit\bin\;
C:\ProgramData\Oracle\Java\javapath;
C:\Program Files\instantclient_12_1;
C:\app\nd369d\product\11.2.0\dbhome_1\BIN;
C:\甲骨文

JAVA
(我从客户端的安装站点更新到 Java 8 update 66。虽然程序安装了更新,但它没有删除早期版本,所以现在这两个版本都存在于机器上):
Java 7 Update 51(64 位)
Java 7更新 51
Java 8 更新 66(64 位)
Java 8 更新 66

4

1 回答 1

0

您安装了多个 oracle 客户端,并且很可能它们具有不同的 tnsnames.ora 和 sqlnet.ora 变体。

另见:http ://www.orafaq.com/forum/t/74793/

  • 检查 sql*plus 是否使用 tns 名称从命令行工作
  • 检查你的 tnsnames.ora 配置文件,我发现有很多括号很容易出错:)
于 2016-03-12T03:09:56.483 回答