我最近选择了一个项目,我需要构建一些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检查了异常代码,但我找不到任何东西。
提前致谢。
答案 0 :(得分:1)
答案 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)