我尝试测试连接时收到以下错误消息:
由于初始化提供程序时出错,测试连接失败。 '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部门首先批准该请求。可能需要几天才能收到回复。
搜索后看起来好像没有Visual Studio 64位版本:
我不知道是否有这方面的官方文档,但根据我自己的经验,您需要在开发机器上安装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
在搜索时,我发现许多其他链接具有相同的意见: