0

我最近拿起了一个项目,我需要构建一些 SSIS 包,这些包从远程 Oracle 数据库中提取数据并将数据加载到 Sql Server 数据库中。Oracle 数据库是旧的 32 位 Oracle 8i 数据库。Sql Server 是 64 位 Sql Server 2008R2。

我可以从旧的 Win XP 工作站连接到 Oracle 数据库没有问题。当我尝试从 Sql Server 连接时,我无法设置握手。

我在 Sql Server 框中安装了 Oracle Client 11g,将 tnsnames 文件从 Install\Network\Admin\Sample 复制到 Install\Network\Admin 并添加了在 XP 工作站上工作的条目。当我尝试使用 Oracle ODBC Driver 创建 ODBC 连接时,我得到:

*无法连接 Sql State=08004 ORA-12154: TNS: 无法解析指定的连接标识符。*1

我的猜测是驱动程序找不到 TNS 文件。我还有什么需要配置的吗?我通过duckduckgo检查了异常代码,我找不到任何东西。

提前致谢。

4

5 回答 5

1

好的,我发现我必须进入环境变量并定义 ORACLE_HOME 路径。一旦我这样做了,它就连接了。

这篇文章让我走上了正轨。

谢谢

于 2013-06-25T17:04:28.767 回答
0

您必须同时使用 64 位或 32 位作为您的机器配置。确保您的服务器配置正确。

于 2013-06-25T17:02:29.857 回答
0

这可能会帮助陷入“标识符未解决问题”的人:如果您已经检查了环境变量:PATH、ORACLE_HOME、TNS_ADMIN,请仔细查看给定 dsn 的 tnsnames.ora 条目。我没有给出适当的缩进,因此它失败了!

这是具有准确缩进的条目:

<dsn> =
   (DESCRIPTION =
    (ADDRESS = (PROTOCOL = TCP)(HOST = <server>)(PORT = <port>))
    (CONNECT_DATA =
      (SERVER = DEDICATED)
      (SERVICE_NAME = <servicename>) 
    )
  )
于 2015-04-15T12:38:22.967 回答
0

我有一个类似的问题,我在 TNS 服务名称列表中得到了垃圾,并且测试连接需要很长时间。我发现这是由于 TNS_ADMIN 变量的系统环境变量设置中的拼写错误,我在目录之后有一个空格,例如 c:\oracle\instantclient_ (其中 _ 是空格)删除并更正了列表垃圾并直接连接离开。

希望这可以帮助。

于 2015-04-29T03:38:54.370 回答
0

当然你必须检查你的 TNSNAMES.ora

C:\your_oracle_folder\app\oracle\product\11.2.0\server\network\ADMIN\TNSNAMES.ora

您应该在顶部看到您的系统名称。就我而言,Oracle 11g Express 是“XE”。然后根据您的平台配置您的 ODBC 32 或 64 位:

在此处输入图像描述

于 2017-05-20T21:36:53.167 回答