部署 SSIS 包 - TNS:无法解析指定的连接标识符

部署 SSIS 包 - TNS:无法解析指定的连接标识符

我有一个 SSIS 包,它有 4 个连接 - 一个 WebService、2 个 SQL Server 连接(跨 2 个域)和 1 个到 Oracle DB 的连接。

当从笔记本电脑上的 Visual Studio 运行该包时,它运行正常。当我将其部署到服务器时,我收到“TNS:无法解析指定的连接标识符”。tnsping 的结果:

TNSPing 的 64 位版本

C:\oracle\product\10.2.0\client_2\BIN>tnsping myservice.name

TNS Ping Utility for 64-bit Windows: Version 10.2.0.4.0 - Production on 05-SEP-2
013 11:06:10

Copyright (c) 1997,  2007, Oracle.  All rights reserved.

Used parameter files: 
c:\oracle\product\10.2.0\client_2\network\admin\sqlnet.ora
Used TNSNAMES adapter to resolve the alias
Attempting to contact (DESCRIPTION = (ADDRESS_LIST = (ADDRESS = (PROTOCOL = TCP)
    (HOST = ww.x.y.zzz)(PORT = 1521))) (CONNECT_DATA = (SERVICE_NAME = myservice.name))
)
OK (0 msec)

TNSPing 的 32 位版本

C:\oracle\product\10.2.0\client_1\BIN>tnsping myservice.name

TNS Ping Utility for 32-bit Windows: Version 10.2.0.4.0 - Production on 05-SEP-2
013 11:06:20

Copyright (c) 1997,  2007, Oracle.  All rights reserved.

Used parameter files:
c:\oracle\product\10.2.0\client_1\network\admin\sqlnet.ora
Used TNSNAMES adapter to resolve the alias
Attempting to contact (DESCRIPTION = (ADDRESS_LIST = (ADDRESS = (PROTOCOL = TCP)
    (HOST = ww.x.y.zzz)(PORT = 1521))) (CONNECT_DATA = (SERVICE_NAME = myservice.name))
    )
OK (0 msec)

现在使用 DTSWizard.exe 进行类似的实验。

使用 Oracle Provider for OLE DB。使用 Microsoft OLE DB Provider for Oracle 可获得相同的结果。

请参见这个图片- 我的声誉不足以在此处发布图片..!

(我也尝试过使用 C:\PROGRAM~2\Microsoft SQL Server\110\DTS\Binn\DTSWizard.exe - 但没有任何效果。)

笔记本电脑是 64 位的,安装了 Oracle 11.2.0。
服务器是 64 位的,安装了 Oracle 10.2.0。

我的理解是 SQL Server Management Studio 仅为 32 位 - 这可能是问题所在吗?

有人能建议我接下来该怎么做吗?我尝试了各种连接器,但似乎都没有什么区别。我能想到的唯一其他选择是从服务器中取出驱动程序,将它们放在笔记本电脑上,重新配置 SSIS 包以与它们一起使用,然后再次部署它——但是,如果有更简单的方法,我希望避免这种情况?

答案1

我会尝试两件事:

1)确保您设置了一个 Windows 系统环境变量:TNS_ADMIN 指向您的 TNS 名称文件(需要重新启动 SQL 服务器代理)

2) 查看你的 PATH 并确保 x64 客户端位于 x32 客户端之前

3)如果其他方法都失败,放弃 tns 名称文件并使用

易联

相关内容