尝试将Excel 2013与Oracle连接 - ORA-12154

时间:2014-07-17 16:56:07

标签: oracle database-connection excel-2013

我正尝试通过Power Query > From Database > From Oracle Database连接到Oracle,然后输入BI_TST,它位于我的TNSNAMES(位于:C:\oracle\product\10.2.0\client_2\network\ADMIN)中,并且内部有以下连接:< / p>

BI_TST =
  (DESCRIPTION =
    (ADDRESS = (PROTOCOL = TCP)(HOST = srv-oracle3.mycompany.com.br)(PORT = 1521))
    (CONNECT_DATA =
      (SERVER = DEDICATED)
      (SERVICE_NAME = bitst)
    )
  )

此外,我将变量路径配置为TNS_ADMIN=C:\oracle\product\10.2.0\client_2\network\ADMIN

当我使用SQL Developer进行连接时,不使用TNS手动设置所有信息,它可以工作!

当我尝试在Excel中使用TNS连接时,我收到错误:

Message=ORA-12154: TNS:não foi possível resolver o identificador de conexão especificado

    ErrorCode=-2146232008

这意味着英文:“无法解析连接标识符”

有谁可以帮我解决这个问题?

提前致谢!

2 个答案:

答案 0 :(得分:2)

老实说,我已经填满了tnsnames。我理解它背后的想法并且可以理解,但是我花了更多的时间来弄清楚为什么它不起作用而不是我保存额外的击键。

在我看来,绕过TNSnames使用Oracle的ezconnect:

srv-oracle3.mycompany.com.br:1521/bitst

取代:

BI_TST

这也适用于ODBC。如果无法通过PowerQuery的Oracle驱动程序直接连接,请尝试通过ODBC。虽然它是你可能不想要的附加层,但我怀疑你会注意到性能差异,它可能会抽象出你通常要处理的困难。

答案 1 :(得分:2)

澄清Hambone的回应,通过Oracle客户端驱动程序将Excel连接到Oracle而不使用TNS名称:

  1. 转到“控制面板”&gt;管理工具&gt; ODBC数据源
  2. 转到文件DSN标签
  3. 选择Oracle驱动程序(例如Oracle11gr1)
  4. 提供新数据源(任何名称)的名称
  5. 提示输入服务名称时,请输入host:port / servicename,例如: db123:1521 / service123
  6. 希望这适用于所有人。