我只能从我在 SSIS 的经历中说出来,所以如果这只是有点用处,我深表歉意。
在一般卫生方面,我还没有遇到任何类型的为这项工作专门构建的组件。我认为这是因为不同的场景对“坏数据”的定义可能有很大不同,但可以说,像去除不可打印字符这样的事情可能是常见的业务需求,所以这有点令人惊讶。
自然,您总是可以使用派生列转换,或者在更复杂的情况下,使用脚本组件,但是这些很难使跨包的逻辑复制变得轻松。在某些情况下,我们使用CozyRoc组件来创建我们可以在包之间共享的脚本,但是除了必须首先实际访问这些组件之外,每次您需要时仍然需要进行一定程度的设置功能。
因此,在这种情况下,我个人认为最好的选择是将您的常见卫生程序整合到自定义数据流组件中。我们为自己开发了一个来处理一些非常常见的数据验证逻辑,并设置组件编辑器,以便您可以选择复选框以启用您想要应用于给定列的任何检查。然后它就变成了拖放和连接数据流的问题。至少对我们来说,花时间开发组件绝对值得。
我不知道 DTS 在这方面提供了什么(我认为它相当有限,或者至少不友好,但我可能是错的),所以这可能对您的旧包没有用处。我觉得 Cade 的解决方案在这种情况下可能是最轻松的,假设它对您的输入数据是可行的。
就 SSIS 的一般见解而言,我发现 Jamie Thomson 的博客(以前在这里)非常有帮助,因此您可能想查看他之前是否讨论过这个特定主题。
无论如何,希望这至少有一点帮助,并祝你好运找到解决方案。
附带说明:感谢您希望在将数据粘贴到数据库之前对其进行清理。我们从从不清理数据的特定供应商处获取数据,然后尝试将其放入 XML 中,以通过 Web 服务将其发送给我们。不用说,XML 解析器不太喜欢不可打印的字符。