SSIS中的Oracle连接问题

时间:2019-06-18 22:24:34

标签: sql-server oracle ssis ssis-2008

从SSIS包获取oledb源上的连接错误,以将数据从oracle导入到sql server。部署到服务器后失败,但是从本地计算机从BIDS运行时运行正常。该程序包于2008年开发。

在oracle的服务器上是否需要任何安装?

正在显示以下错误

  

源:连接管理器描述:SSIS错误代码   DTS_E_OLEDB_NOPROVIDER_64BIT_ERROR。请求的OLE DB提供程序   MSDAORA.1未注册-也许没有64位提供者在注册   可用。错误代码:0x00000000。 OLE DB记录可用。   来源:“ Microsoft OLE DB服务组件”结果:0x80040154   描述:“类未注册”。编码:0xC020801C OLE DB   源[1]说明:SSIS错误代码   DTS_E_CANNOTACQUIRECONNECTIONFROMCONNECTIONMANAGER。的   对连接管理器的AcquireConnection方法调用失败,原因是   错误代码0xC0209303。在此之前可能会发布错误消息   有关为何AcquireConnection方法调用失败的更多信息。   代码:0xC0047017来源:SSIS.Pipeline说明:组件   “ OLE DB源”(1)验证失败并返回错误代码   0xC020801C。结束错误错误:2019-06-18 22:54:18.99代码:   0xC004700C来源:管道描述:一个或多个组件   验证失败。

当我验证软件包时,它给出了ORA-01017:无效的用户名/密码;但是从本地计算机运行时使用相同的凭据。

我以32位运行它,但错误仍然存​​在 还尝试使用ProtectionLevel作为Dontsavesensitive,但没有运气

2 个答案:

答案 0 :(得分:0)

您需要在生产计算机上安装Oracle驱动程序。如果我记得一种方法,那就是为Windows安装x64 Oracle客户端软件。它的功能巨大,但似乎可行。这对我有用。

根据此stackoverflow答案,您可以手动安装驱动程序,但步骤很多:

https://serverfault.com/questions/175257/how-to-install-oracle-ole-drivers-for-use-in-sql-server-2008-r2-x64

答案 1 :(得分:0)

是的,您需要安装Oracle客户端。当您使用Microsoft的deprecated MSDAORA OLE DB提供程序时,裸露的Instant Client应该足够。

如果您想使用Oracle Provider for OLE DB(OraOLEDB.Oracle),则必须安装该提供程序。它不包含在Instant Client中。

确保体系结构(即32位或64位)与您的应用程序相同。您的问题尚不清楚。您写“我正在32位运行它”,但错误消息“请求的OLE DB提供程序MSDAORA.1未注册-也许没有64位提供程序可用。”表示64位。

请注意,Microsoft的旧MSDAORA提供程序仅适用于32位。如果需要64位版本,则必须从Oracle获得该提供程序。

可以从32-bit Oracle Data Access Components下载32位驱动程序,可以从64-bit Oracle Data Access Components下载64位驱动器