脚本组件缺少oracle参考

时间:2018-06-28 04:30:53

标签: c# oracle ssis

我尝试使用脚本组件并将一些数据插入Oracle数据库,但是我遇到以下问题。

  

无法加载文件或程序集'Oracle.ManagedDataAccess,   版本= 4.122.1.0,文化=中性,PublicKeyToken = 89b483f429c47342'   或其依赖项之一。系统找不到指定的文件。


  

在ScriptMain.Input0_ProcessInputRow(Input0Buffer Row)在   UserComponent.Input0_ProcessInput(Input0Buffer Buffer)位于   UserComponent.ProcessInput(Int32 InputID,String InputName,   PipelineBuffer Buffer,OutputNameMap OutputMap)位于   Microsoft.SqlServer.Dts.Pipeline.ScriptComponent.ProcessInput(Int32   InputID,PipelineBuffer缓冲区)位于   Microsoft.SqlServer.Dts.Pipeline.ScriptComponentHost.ProcessInput(Int32   inputID,PipelineBuffer缓冲区)

在谷歌搜索之后,我认为我的问题应该与this issue.相同,我从以下位置复制Oracle.ManagedDataAccess.dll C:\ Program Files(x86)\ Oracle开发人员工具VS2017 \ odp.net \ managed \ common \ Oracle.ManagedDataAccess.dll

C:\ Windows \ assembly

C:\ Windows \ assembly \ GAC

如上一个链接所述。但是我再次面对同样的问题。您介意告诉我我是否想念任何部分吗?

我正在使用SSIS2017。

1 个答案:

答案 0 :(得分:1)

那是错误的,您不应将文件手动复制到C:\Windows\assembly。请注意,从.NET Framework 4开始,全局程序集缓存的默认位置为%windir%\Microsoft.NET\assembly

  • 您可以将DLL复制到应用程序可执行文件的文件夹中。
  • 或将其添加到GAC(全局程序集缓存)。这是通过工具gacutil.exe完成的。我假设每个安装工具还提供了“添加到GAC”选项。您还可以使用...\odp.net\managed\x64\OraProvCfg.exe和/或...\odp.net\managed\x86\OraProvCfg.exe
  • 还有更多可以放置DLL的位置(请参阅Probing the Application Base and Culture Directories),但是应用程序的根目录是标准的。