【发布时间】:2015-03-28 22:30:23
【问题描述】:
我们有一个安装了 32 位 Oracle 11g 驱动程序的 SQL Server 生产盒。我们当前安装了相同驱动程序的测试 SQL Server 已被具有 64 位 12c 驱动程序的新服务器替换。当我们测试从 Oracle 提取并加载 SQL 的 SSIS 2012 包时,我们将使用 64 位 DTEXEC.exe 实用程序在新的 Test SQL Server 上运行该包。
Q1:是不是通过使用64位DTEXEC实用程序,包会自动寻找64位版本的驱动?
我假设在下面的连接字符串中,Provider=MSDAORA.1 指的是 Oracle 的 MS OLE Provider,所以我假设我没有使用 Oracle 驱动程序。我没有使用 DSN。
Q2: 是否查找连接字符串 MyOracleResource.MyCompany.COM 的“数据源”属性的值,并在其中之一中找到我的 tnsname.ora 文件中的相应条目基于我用来运行包的 DTEXEC 版本的文件夹?
C:\Oracle\product\11203_32bit\CLIENT_1\NETWORK\ADMIN
C:\Oracle\product\11203_64bit\CLIENT_1\NETWORK\ADMIN
如果是这样,我很惊讶 MS 驱动程序将依赖于安装 Oracle 客户端后创建的 tnsnames 文件。
在项目属性中,在属性页->配置属性->调试下,有一个属性“Run64BitRunTime”。
Q3:我是否正确假设在 IDE 中运行时,这相当于选择 DTEXE 实用程序的 32 位或 64 位版本来从 cmd 行运行包?
当我查看 Oracle 连接对象的属性时,我看到一个值为 {0cbfe196-1a88-4b62-8522-b34dbb37ba71} 的“ID”属性。
Q4:此 GUID 是否用于识别驱动程序的特定驱动程序版本,因此在与生产环境不匹配的环境中进行测试时可能会导致问题?
<Configuration ConfiguredType="Property" Path="\Package.Connections[MyOracleDb].Properties[ConnectionString]" ValueType="String">
<ConfiguredValue>Data Source=MyOracleResource.MyCompany.COM;User ID=MyUser;Password=MyPassword;Provider=MSDAORA.1;Persist Security Info=True;</ConfiguredValue>
</Configuration>
【问题讨论】: