卸载32位版本的oracle客户端后,SSIS中的Oracle连接中断

问题描述 投票:2回答:1

我尝试测试连接时收到以下错误消息:

由于初始化提供程序时出错,测试连接失败。 'OraOLEDB.Oracle.1'提供程序未在本地计算机上注册

我最初在我的工作机器上安装了32位和64位版本的Oracle 12客户端。我卸载了32位版本,因为它导致了与另一个应用程序的一些冲突,但现在卸载后我无法再在SSIS中使用我的oracle连接。

我正在使用Visual Studio 2017 - 我很确定我安装了64位版本的SSDT,但看起来它们安装在86x程序文件夹下。我仍然可以通过TOAD连接,所以它看起来是一个SSIS问题而不是指向64位安装,我想。我可以手动设置SSIS指向64位版本,还是需要重新安装32位?

TSN_Admin设置为oracle12c_64 tsnname.ora文件。我也尝试在oraoledb12.dll文件上使用regsvr32.exe,但是我收到一条错误消息,即使在以管理员身份运行命令提示符后:

通过调用DllRegisterServer加载模块“OraOLEDB.dll”失败,错误代码为0x80070005。

我可以重新安装32位版本,但我需要等待我公司的IT部门首先批准该请求。可能需要几天才能收到回复。

oracle ssis etl oracleclient oraoledb
1个回答
1
投票

Update 1 - Visual Studio 64-bit

搜索后看起来好像没有Visual Studio 64位版本:


Initial Answer

我不知道是否有这方面的官方文档,但根据我自己的经验,您需要在开发机器上安装oracle客户端32位,因为Visual Studio的SQL Server数据工具是一个32位应用程序,它无法工作将与oracle客户端64位一起使用。

但是,如果您使用的是oracle 64位客户端,则可以毫无问题地执行.dtsx包,您需要使用相应的DtExec路径:

32位

C:\Program Files (x86)\Microsoft SQL Server\100\DTS\Binn\DtExec.exe

64位

C:\Program Files\Microsoft SQL Server\100\DTS\Binn\DtExec.exe

在搜索时,我发现许多其他链接具有相同的意见:

© www.soinside.com 2019 - 2024. All rights reserved.