填充脚本组件中的输出列

时间:2016-06-19 19:25:19

标签: c# ssis etl

File_NAME is readonly variable MyColumn is output column 我在Script Component中将File_Name作为ReadOnlyVariable,我希望将其存储为输出,以便稍后在包中使用。在输入和输出中创建输出列(myColumn)。现在尝试将myColumn填充为File_Name

public override void CreateNewOutputRows()
{
    MyOutputBuffer.AddRow();
    MyOutputBuffer.MyColumn = ??User::FILE_NAME
}

如何将File_Name变量放入MyColumn?

1 个答案:

答案 0 :(得分:3)

一旦将脚本组件添加到读取或读/写集合中,脚本组件就允许您访问Variables集合中的SSIS变量。

这样做的语法是

MyOutputBuffer.MyColumn = Variables.FILE_NAME;

脚本任务的不同之处在于您需要访问Value方法,然后将结果值从Object转换为正确的类型。

还有另外两种方法可以将FILE_NAME的值添加到您的数据流中。第二种和更多以SSIS为中心的方法是使用带有类似

的表达式的派生列组件
@[User::FILE_NAME]

假设您已将其定义为名为MyColumn的新列,并且类型为DT_WSTR(120)

另一个,假设这是一个平面文件源,是转到高级属性并将文件名包含在列中。

如果您正在寻找令人兴奋的阅读,我在What is the name of current file下发表了关于后一种方法的博客。