SSIS 2005 - 如何导入固定宽度的平面文件?

时间:2010-05-10 15:55:17

标签: sql etl flat-file ssis

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

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的方法是什么?

2 个答案:

答案 0 :(得分:3)

你不能使用固定宽度选项,我似乎记得,只有粗糙度在整个最后一列时,适用的右边选项才适用。

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

或者,预处理文件(可能在SSIS中,使用带条件分割的右手边框,输出到平面文件)来过滤掉要忽略的行,然后可以使用平面文件连接管理员在生成的文件上。

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

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

这与我在这个问题中提出的问题基本相同:How to process ragged right text files with many suppressed columns in SSIS or other tool?

答案 1 :(得分:1)

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

  1. 使用固定宽度选项
  2. 设置任务
  3. 手动将列添加到高级选项卡。在这里,您需要添加3列,每列长度为4。
  4. 如果有效..那么你可以使用脚本任务来读取平面文件并在进行数据流任务之前删除垃圾。