首页 > 解决方案 > SSIS 参考错误 Oracle DataAccess - 使用自定义类型参数调用 PL/SQL 过程

问题描述

我正在尝试使用 SSIS 工作流中的自定义类型参数调用 PL/SQL 过程。

我试过了:

然后,我尝试通过实现用于自定义 UDT 映射的所有必要类和接口,通过 C# 制作我自己的自定义映射。通过这种方式,我设法将自定义类型参数传入和传出过程。(作为 ConsoleApplication 创建的 POC)。

我在创建自定义类时遵循的教程:https ://www.codeproject.com/Articles/1139474/ODP-NET-User-Defined-Type-Implementation

我尝试使用在 SSIS 脚本任务中的控制台应用程序中使用的相同代码。而这里我遇到了一个奇怪的问题☹ 为了实现程序中使用的customType,我使用了Oracle.DataAccess 引用。每当我将此引用添加到脚本任务时,执行时都会出现以下错误:

DTS 脚本任务:运行时错误

一旦我实现一个使用对 Oracle.DataAccess 的引用的类,就会发生错误。类声明本身似乎导致了这个错误,因为即使我不使用它们在 scriptMain 中,错误仍然存​​在。每当我注释掉类(但将引用保留在脚本中)时,组件都会毫无错误地执行......</p>

配置: 我正在使用 Visual Studio 2017 Enterprise Edition,
TargetServerVersion:SQL Server 2017
包上的目标框架:.NET Framework 4.5
Oracle 客户端的 PATH 环境设置:C:\app\client32\product\12.2.0\client_1\bin

我尝试在项目和包级别更改 SQL Server 目标、目标框架和其他一些设置,但没有任何效果。

任何人都知道如何解决这个问题,以便我可以在脚本任务中使用我的 C# 自定义映射?

也欢迎提供具有自定义参数的调用程序的任何其他解决方案:)

最后,如果有人知道一个好的自动 UDT 映射器,我将不胜感激 :) 我尝试了 Odapter - 好的,但使用 Oracle.ManagedDataAccess 而不是 DataAccess,我似乎无法在那里使用 OracleDbType.Object ...

编辑:我设法发现每当我从引用(f.ex. IOracleCustomType)实现接口时就会出现问题。如果我只将此类型用作方法中的参数,则脚本将执行。一旦我添加了一个实现接口的类,就会出现“无法加载脚本以执行”错误。

标签: c#oraclessisetlscript-task

解决方案


推荐阅读