【问题标题】:SSIS Flat file connectionSSIS平面文件连接
【发布时间】:2019-12-13 13:52:35
【问题描述】:

我得到一个如下所示的平面文件。我一直在使用 ssis 来加载这些数据。它有 9 个动态列名,只有前三列有行数据,其余没有任何数据。

在平面文件连接管理器中。我选择了:

  • 行分隔符为 {CR}{LF}
  • 列分隔符为逗号 {,}

文件内容:

S_NO,FIL_NO,PN,DATE,RT_NO,MW_NO,RS_NO,MIS49,TMIS
2,61,HZZ
2,62,HZZ1
2,63,HZZ2
2,64,HZZ
2,65,HZZ1
2,66,HZZ2

当我运行包时,数据如下所示

S_NO    FIL_NO  PN  DATE    RT_NO   MW_NO   RS_NO   MIS49   TMIS
2         61    HZZ     2   63      HZZ2    2         65    HZZ1
2         62    HZZ1    2   64      HZZ     2         66    HZZ2

【问题讨论】:

  • 你的目标是什么?对我来说,似乎跳过标题行可能是您最简单的选择,然后在高级编辑器中定义列。 csv 确实无效,因为详细记录应该有“,”来表示缺失的列。例如:2,61,HZZ,,,,,
  • 我的目标是加载此文件,因为列每次都会动态变化。这是我们从第三方收到的源文件。该文件包含 8 或 9 列,但它仅包含第一个数据3 列,其余列为空

标签: csv ssis etl flat-file flatfilesource


【解决方案1】:

参考Flat File Connection Manager official documentation

默认情况下,平面文件连接管理器始终检查未引用数据中的行分隔符,并在找到行分隔符时开始新行。这使连接管理器能够正确解析包含缺少列​​字段的行的文件。

在某些情况下,禁用此功能可能会提高包性能。您可以通过将平面文件连接管理器属性 AlwaysCheckForRowDelimiters 设置为 False 来禁用此功能。

为了解决这种情况,请确保 AlwaysCheckForRowDelimiters 属性设置为 True

【讨论】:

  • 谢谢,会检查
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 2013-06-12
  • 1970-01-01
  • 2014-12-27
  • 2014-06-25
  • 2016-01-27
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多