我知道,这是一个经常被问到的问题,但我无法解决有关如何在SSIS中使用Oracle数据库的问题。
Oracle数据源规范
配置
ODTWithODAC121021
& ODAC121021_x64
tnsNames.ora
定义为C:... \ client_1 \ network \ admin
LANDESK_PP =
(DESCRIPTION =
(ADDRESS = (PROTOCOL = TCP)(HOST = PPRQU)(PORT = 1521))
(CONNECT_DATA =
(SERVER = DEDICATED)
(SERVICE_NAME = mydomain.com)
)
)
用法
如果我使用SQL Developer,连接正常,我可以执行一些查询。此外,如果我创建一个Oracle Provider for OLEDB
连接管理器,我也可以使用预览按钮,但包执行不起作用。
现在,如果我运行包(在32位或64位调试模式下),则会发生错误,因为无法获取连接。
这是错误:
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.
有什么想法解决这个问题?
答案 0 :(得分:0)
你遇到了微软在构建Windows 64位时亲切创建的64位与32位驱动程序混乱。我个人已经放弃尝试解决这个问题 - 我只安装32位驱动程序作为最低标准。
所以我会完全卸载Oracle并重新安装32位驱动程序。
Visual Studio和SSMS是32位,因此他们将“看到”32位驱动程序。对于Visual Studio中的32位调试执行,请转到项目属性/调试并将Run64BitRuntime设置为False。