从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,但没有运气
答案 0 :(得分:0)
您需要在生产计算机上安装Oracle驱动程序。如果我记得一种方法,那就是为Windows安装x64 Oracle客户端软件。它的功能巨大,但似乎可行。这对我有用。
根据此stackoverflow答案,您可以手动安装驱动程序,但步骤很多:
答案 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位驱动器