不规则的右平面文件选项非常适合以 CRLF 终止的单个尾随字段,但是当任何数量的空白尾随字段被抑制并且该行以 CRLF 提前终止时,我在 SSIS 中找不到其他选择,只能阅读一些列中包含一个“剩余”列,然后使用带有 SUBSTRING 操作的派生列转换来一一提取“可选”列。
我想到的一种可能性是,在连接管理器获得它之前,是否有任何方法可以通过 SSIS 中的“填充器”组件传递线路。然后,您可以获得使用连接管理器设置传入列长度的所有好处。我总是可以创建一个外部程序(或一个完全独立的 SSIS 数据流)来传递一个文件,该文件将用空格填充每一行(并且右不规则 - 只需添加相同的最小空格数以解释所有抑制字段到每个行就足够了),但这似乎相当浪费磁盘空间,并且还需要再完全读取(和写入)文件一次。
或者,如果行过早终止,也许有一个第三方数据源组件将自动简单地为 NULL 或空白和列。
还有其他选择吗?