如何在SSIS中处理Oracle数据源?

时间:2015-04-27 09:14:18

标签: sql-server oracle ssis oledb odac

我知道,这是一个经常被问到的问题,但我无法解决有关如何在SSIS中使用Oracle数据库的问题。

Oracle数据源规范

enter image description here

配置

  • 我安装了ODTWithODAC121021& ODAC121021_x64
  • 我将tnsNames.ora定义为C:... \ client_1 \ network \ admin

enter image description here

LANDESK_PP =
  (DESCRIPTION =
    (ADDRESS = (PROTOCOL = TCP)(HOST = PPRQU)(PORT = 1521))
    (CONNECT_DATA =
      (SERVER = DEDICATED)
      (SERVICE_NAME = mydomain.com)
    )
  )

用法

如果我使用SQL Developer,连接正常,我可以执行一些查询。此外,如果我创建一个Oracle Provider for OLEDB连接管理器,我也可以使用预览按钮,但包执行不起作用。

enter image description here enter image description here

现在,如果我运行包(在32位或64位调试模式下),则会发生错误,因为无法获取连接。

这是错误:

enter image description here

Error: 0xC020801C at Load LANDESK data, Load LANDESK [108]: Error code SSIS DTS_E_CANNOTACQUIRECONNECTIONFROMCONNECTIONMANAGER. The AcquireConnection method call to the connection manager "Landesk" failed.  

有什么想法解决这个问题?

1 个答案:

答案 0 :(得分:0)

你遇到了微软在构建Windows 64位时亲切创建的64位与32位驱动程序混乱。我个人已经放弃尝试解决这个问题 - 我只安装32位驱动程序作为最低标准。

所以我会完全卸载Oracle并重新安装32位驱动程序。

Visual Studio和SSMS是32位,因此他们将“看到”32位驱动程序。对于Visual Studio中的32位调试执行,请转到项目属性/调试并将Run64BitRuntime设置为False。