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

4
我在我的SSIS项目的数据流中有一个OLE DB数据源和一个平面文件目标。目标很简单,就是将数据泵入文本文件,它也确实做到了这一点。
我遇到问题的地方是格式。我需要能够rtrim()几列以删除尾随空格,并且还有几列需要保留其前导零。当前的处理过程丢失了所有前导零。
可以通过简单截断并忽略截断错误来完成rtrim(),但这非常不优雅且容易出错。我想找到更好的方法,比如在需要时实际执行rtrim()函数。
在SO上探索类似的SSIS问题和答案,要做的事情似乎是“使用脚本任务”,但通常只是简单提及,而且设置起来并不直观。
我不知道如何使用脚本来做我需要的事情。我在控制流中使用脚本任务还是在数据流中使用脚本组件?我能否在脚本中进行rtrim()和填充字符串?有人有做这个或类似事情的例子吗?
非常感谢您的帮助。
1个回答

6

使用 SSIS,有许多可能的解决方案!根据您提到的内容,您可以在数据流中使用“Derived Column transform”来执行修剪和填充操作 - 您将使用表达式来完成此操作,它相对简单。例如,

ltrim([ColumnName])

裁剪和类似的操作

right("0000"+ [ColumnName],6)

填充(这只是我临时想到的,语法可能不精确)。

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


那其实是问题的间接原因...选择太多了!我使用了一个派生列转换,只需很少的努力就解决了问题。谢谢revelator。 - theog

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接