我有一个执行SQL任务的SSIS包,以获取需要连接的服务器的名称。然后,该查询的结果存储在一个名为“服务器”的变量对象中。然后,我想一次在每个服务器上运行另一个程序包,因此我想拆分“ servers”变量。但是,当我在C#脚本任务中执行此操作时,我不断收到错误消息:

错误:脚本任务处的0x1:调用目标已引发异常。

这是拆分服务器变量的代码:


  错误:脚本任务处的0x1:调用目标已引发异常。


public void Main()
{
    var serverlist = (string[])Dts.Variables["User::servers"].Value;

    Dts.Variables["server1"].Value = serverlist[0];
    Dts.TaskResult = (int)ScriptResults.Success;
}



它应该是一个非常简单的代码,但是由于某种原因,它根本无法正常工作。

最佳答案

由于您已经提到:


  我有一个执行SQL任务以获取服务器名称的SSIS包


主要问题在以下行中:

var serverlist = (string[])Dts.Variables["User::servers"].Value;


Execute SQL Task不返回字符串列表,而是返回一个记录集对象。为了在脚本任务中阅读它,您必须遵循以下文章(您必须使用OledbAdapter):


SSIS - How to access a RecordSet variable inside a Script Task

09-10 10:56
查看更多