【问题标题】:SSIS Package Stubborn Flat File Connection ManagerSSIS 包顽固的平面文件连接管理器
【发布时间】:2016-01-27 00:35:22
【问题描述】:

我每周都会收到一个以竖线分隔的平面文件,该文件有 50 列。我正在尝试使用 SSIS 获取该文件,删除最后 3 列,然后将剩余数据插入到新的管道分隔平面文件中。起初我以为这会很简单,但我有一个顽固的平面文件连接管理器。它不断恢复到带有额外列的入站文件布局,并且当出站文件需要用管道分隔时,它还会继续返回到逗号分隔文件。

我“删除”不需要的列的方式是将它们从入站平面文件连接管理器中删除,因此它们不会列在平面文件源的输出列中,也不会显示给位于平面文件目标的输入列上。

这两个文件的文件名是动态的...不确定是否与它有关。

我将两者的延迟验证都设置为 true,但我不确定还可以尝试什么。我也尝试删除所有这些并重新添加到连接管理器和文件中。

有 2 个平面文件连接管理器,一个用于源,一个用于目标,是否存在一些问题?有没有我缺少的设置?

【问题讨论】:

  • 据我所知,您无法更改平面文件中的列设置。为什么不使用您需要的布局创建平面文件连接(即减去 3 列)。然后(1)写入新文件。 (2) 删除不需要的文件 (3) 用旧文件名重命名新的平面文件?

标签: ssis


【解决方案1】:
  1. 删除您的连接管理器和源/目标(有效地重新开始)
  2. 使用新的 FF 连接添加平面文件源 (FFSRC)
  3. 根据需要设置 FFSRC(管道分隔、标题等)- 不要删除任何行
  4. 单击“确定”后,您将返回数据流。右键单击您的平面文件源,然后单击“显示高级编辑器”
  5. 转到“输入和输出属性”选项卡,然后展开 FFSRC 输出/输出列。点击一列,然后点击“删除列”。
  6. 使用新的连接管理器添加平面文件目标 (FFDST),并映射输入。

您的目的地现在不应该有这些列。

如果平面文件连接似乎因为动态名称而被重置,请考虑将它们作为表达式/变量提供。

为此,请单击源/目标的连接管理器节点(不是数据流节点),然后在“属性”中展开“表达式”。您将希望通过变量使ConnectionString 动态化。

【讨论】:

    【解决方案2】:

    什么意思

    它会不断恢复到带有额外列的入站文件布局,并在出站文件需要用管道分隔时继续返回到逗号分隔文件。

    您是否尝试过直接引用该文件,然后设置文件类型(不规则右、定界或固定宽度),然后将表达式应用于连接管理器的 connectionstring 属性?

    我建议衣衫褴褛,我可以指定任何我想要的“列”和宽度。

    【讨论】:

      猜你喜欢
      • 2012-08-02
      • 2013-06-12
      • 2014-12-27
      • 1970-01-01
      • 2023-04-11
      • 2011-07-28
      • 2016-03-28
      • 1970-01-01
      • 2019-12-13
      相关资源
      最近更新 更多