如何调整SSIS中平面文件目标中的列?

时间:2010-03-18 21:25:22

标签: ssis

我的SSIS项目的数据流中有一个OLE DB数据源和一个平面文件目的地。目标只是将数据泵入文本文件,它就是这样做的。

我遇到问题的地方是格式化。我需要能够rtrim()几列来删除尾随空格,而且还有一些需要保留前导零的列。目前的流程正在失去所有领先的零。

rtrim()可以通过简单的截断和忽略截断错误来完成,但这非常不优雅且容易出错。我想找到一种更好的方法,比如在需要时实际执行rtrim()函数。

探索类似的SSIS问题&关于SO的答案,要做的事情似乎是“使用脚本任务”,但这通常只是在没有细节的情况下扔出去,而且设置起来并不是一件直观的事情。

我不知道如何使用脚本来做我需要的事情。我是在控制流上使用脚本任务,还是在数据流中使用脚本组件?我可以在脚本中的所需位置执行rtrim()和填充字符串吗?有人做过这样或类似事情的例子吗?

非常感谢提前。

1 个答案:

答案 0 :(得分:6)

使用SSIS,有许多可能的解决方案!根据您的提及,您可以在数据流中使用派生列转换来执行修剪和填充 - 您将使用表达式来执行此操作,这将相对简单。例如,

ltrim([ColumnName])

修剪

的内容
right("0000"+ [ColumnName],6)

填充(这是我的头顶,所以语法可能不准确)。

对于脚本方法,这也是有效的。您将在数据流上使用脚本组件转换,并使用VB.NET或C#(如果您有2008)字符串操作方法(例如strVariable.Trim())。