我在一个 SSIS 项目中遇到了 Oracle 连接问题,并且一直在谷歌搜索一个多星期来试图找到一个解决方案,现在还没有找到任何东西。
我的开发环境中有以下配置:
操作系统:Windows Server 2008 R2 Datacenter,64 位 SQL Server Data Tools,2010
我需要配置一个 SSIS 数据流任务以从四个不同的 Oracle 数据源(以及其他)中提取数据。一个是 Oracle 版本 11.1.0.7,两个是 9.2.0.4.0 版本,一个是 9.2.0.8.0。
我们使用本地 TNSNAMES 和 SQLNET.ora 文件进行配置。
我已经在许多不同的 Oracle 客户端上进行了尝试,并且基本上得到了相同的结果,所以将重点介绍我所做的一个:
- 安装了 Oracle Client 11gR2 64 位。
- 安装了 Oracle Client 11gR2 32 位(推荐该顺序)。
- 将我的 TNSNAMES 和 SQLNET.ora 文件复制到两个网络/管理配置文件夹中。
- 对上面提到的 4 个数据库中的每一个都进行了成功的 TNSPING。成功的。
- 打开 SQL Server Data Tools 并打开一个新项目
- 做了一个“创建新的连接管理器”,选择了 ADO.NET
- 选择“Oracle Client Data Provider”,输入11g数据库的详细信息
- 做了一个“测试连接”。成功。
- 对 9.0 数据库之一重复该过程。当我执行“测试连接”时,我收到“测试连接失败,因为初始化提供程序时出错。ORA-12645:参数不存在”。
对于所有三个 9.x 数据库,我得到了相同的结果。
Oracle“帮助”说这个错误是由于SQLNET.ora文件中缺少参数引起的,解决方法是添加缺少的参数。麻烦的是,它没有说明缺少什么。
除了两个客户端(ODTwithODAC1120320_32 位、ODAC1120320_x64)之外,我已经尝试过安装其他 Oracle 客户端的相同过程,并得到完全相同的结果。我不能使用版本 12 的客户端,因为据我了解,它不适用于 9 数据库。我不能去 10 客户端,因为这不适用于 11 数据库。
我有一种感觉,它非常特定于 64 位操作系统和版本的 SQL 服务器,但那是我们的目标平台,所以需要让它工作。
有人可以帮我解决这个问题吗?