1

我有一个看起来像这样的平面文件:

junk I don't care about   \n
\n
columns names\n
val1    val2   val3\n
val1    val2   val3\n
columns names   \n
val1    val2   val3\n

我只关心有价值观的线条。这些值行都是固定宽度格式并且具有相同的行长。其他垃圾行和列名可以有任何线宽。

当我尝试平面文件固定宽度选项或参差不齐的右选项时,预览看起来都错了。任何想法将其放入 SSIS 的最简单方法是什么?

4

2 回答 2

3

您不能使用固定宽度选项,我似乎记得只有在整个最后一列中不规则的情况下,右选项才适用。

您可以使用 ragged right 选项并将整个内容读入字符串列,然后使用派生列。

或者,预处理文件(可能在 SSIS 中,使用带有条件拆分的 ragged-right,输出到平面文件)以过滤掉您要忽略的行,然后您可以使用平面文件连接管理器结果文件。

另一种选择是手动编写数据源脚本任务。

如果您可以通过在其他数据流的输出上定义新的连接管理器布局来使用更复杂的文件,那就太好了,但这目前在 SSIS 中不可用。

这与我在这个问题中提出的问题基本相同:如何在 SSIS 或其他工具中处理具有许多抑制列的不规则正确文本文件?

于 2010-05-10T16:55:27.967 回答
1

手动删除顶部的垃圾后尝试此操作。

  1. 使用固定宽度选项设置任务
  2. 手动将列添加到高级选项卡。在这里,您需要添加 3 列,每列长度为 4。

如果它有效.. 然后您可以使用脚本任务来读取平面文件并删除垃圾,然后再执行数据流任务。

于 2010-05-11T11:46:43.147 回答