4

不规则的右平面文件选项非常适合以 CRLF 终止的单个尾随字段,但是当任何数量的空白尾随字段被抑制并且该行以 CRLF 提前终止时,我在 SSIS 中找不到其他选择,只能阅读一些列中包含一个“剩余”列,然后使用带有 SUBSTRING 操作的派生列转换来一一提取“可选”列。

我想到的一种可能性是,在连接管理器获得它之前,是否有任何方法可以通过 SSIS 中的“填充器”组件传递线路。然后,您可以获得使用连接管理器设置传入列长度的所有好处。我总是可以创建一个外部程序(或一个完全独立的 SSIS 数据流)来传递一个文件,该文件将用空格填充每一行(并且右不规则 - 只需添加相同的最小空格数以解释所有抑制字段到每个行就足够了),但这似乎相当浪费磁盘空间,并且还需要再完全读取(和写入)文件一次。

或者,如果行过早终止,也许有一个第三方数据源组件将自动简单地为 NULL 或空白和列。

还有其他选择吗?

4

2 回答 2

2

我认为您提出的解决方案听起来很合理。磁盘空间很便宜。在导入数据之前清理格式的两步过程是完全可以接受的。

于 2008-11-06T15:38:36.787 回答
1

使用脚本组件将列分隔为数据源。

于 2010-12-07T14:42:25.987 回答