连接到Oracle数据库

时间:2013-06-25 16:54:12

标签: oracle odbc

我最近选择了一个项目,我需要构建一些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 Drviver创建ODBC连接时,我得到:

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

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

提前致谢。

5 个答案:

答案 0 :(得分:1)

好的,我找到了 我不得不进入Environment变量并定义ORACLE_HOME路径。一旦我这样做了,就连接了。

This帖子让我走上正轨。

由于

答案 1 :(得分:0)

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

答案 2 :(得分: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>) 
    )
  )

答案 3 :(得分:0)

我有一个类似的问题,我在TNS服务名称列表中获取垃圾并测试连接永远。我发现这是因为TNS_ADMIN变量的系统环境变量设置中的拼写错误,我在目录后面有一个空格,例如c:\ oracle \ instantclient_(其中_是空格) 删除并更正了列表垃圾并立即连接。

希望这有帮助。

答案 4 :(得分:0)

当然,你必须在

检查你的TNSNAMES.ora

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

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

enter image description here