我有一个执行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