如何调整SSIS中平面文件目标中的列?
问题描述:
我在我的SSIS项目的数据流中有一个OLE DB数据源和一个平面文件目标。目标仅仅是将数据输入到文本文件中,并且这样做。如何调整SSIS中平面文件目标中的列?
我遇到问题的地方在于格式化。我需要能够rtrim()几列删除尾随空格,我还有一些需要保留其前导零。目前的流程正在失去所有的前导零。
rtrim()可以通过简单的截断来完成,并忽略截断错误,但这是非常不雅观和容易出错的。我想找到一个更好的方法,比如在需要的地方实际执行rtrim()函数。
探索类似的SSIS问题&关于SO的答案,要做的事情似乎是“使用脚本任务”,但这通常只是在没有任何细节的情况下抛出,而且它根本不是一个直观的设置。
我不明白如何使用脚本来做我需要的。在控制流中使用脚本任务还是在数据流中使用脚本组件?我可以在脚本中执行rtrim()和填充字符串吗?任何人都有这样的例子吗?
非常感谢提前。
答
有了SSIS,有很多可能的解决方案!从你所提到的,你可以在数据流中使用派生列转换来执行修剪和填充 - 你可以使用表达式来执行此操作,这将是相对直接的。例如,
ltrim([ColumnName])
修剪和沿线东西
right("0000"+ [ColumnName],6)
垫(这是我的头的顶部,这样的语法可能不准确)。
至于脚本方法,这也是有效的。您可以在数据流上使用脚本组件转换,并使用VB.NET或C#(如果您有2008)字符串操作方法(例如strVariable.Trim())。
这是间接的问题...太多的选择!我使用了一个派生列转换,并且只需很少的努力就完成了这个任务。谢谢启示者。 – theog