|
|
1
8
你有很多选择,但有些显然是不受欢迎的,或者是因为你的情况而不可能做到的。 首先,我假设数据中的尾随空格是因为源列的数据类型是char或nchar。可以将源数据库中的数据类型更改为varchar或nvarchar。这可能不是个好主意。 如果源数据中的数据类型为varchar或nvarchar,并且尾随空格在数据中,则可以更新数据以删除尾随空格。这也可能不具有吸引力。 所以,您有SSI,处理它的最佳位置是在数据流中。不幸的是,您必须为每个具有尾随空格的列开发一个解决方案。我认为你不会找到一个简单快捷的“修复所有列”解决方案。 您可以使用脚本转换进行数据修整,但必须编写代码来完成这项工作。或者,可以使用派生列转换组件。在派生列转换中,您将为每个需要修剪的列添加派生列。例如,您有一个firstname列和一个firstname列。派生列值将替换现有列值。 在派生列转换中,您将使用SSIS表达式语法来修剪数据。firstname和lastname trim表达式将是
派生列转换的性能可能会更好,但与脚本解决方案的差别可能不大。然而,派生列转换以后可能更容易阅读和理解。 |
|
|
2
0
您可以尝试在数据流中使用脚本组件吗?与控制流不同,数据流脚本组件具有输入和输出。 请看msdn中的这个例子: http://msdn.microsoft.com/en-us/library/ms345160.aspx 如果可以迭代行的每一列(?)当它流经脚本组件时,可以对列的数据进行.NET修剪,然后将修剪后的行传递给输出。 当然,这样做的好处是,它将修剪以后添加的行。 只是个主意,我自己没试过。如果可以的话,一定要回邮。 |
|
|
3
0
看到这个: http://masstrimmer.codeplex.com 它将使用并行性来修剪行。 |