【问题标题】:How to add column names to the flat files without column headers using SSIS.如何使用 SSIS 将列名添加到没有列标题的平面文件。
【发布时间】:2016-10-19 13:24:18
【问题描述】:

我有多个包含 126 列的平面文件,但每个文件都没有列名。我应该如何使用 SSIS 将列名添加到这些文件中。这些文件需要使用 SSIS 导入,以便我可以对这些文件进行转换。

【问题讨论】:

  • 并不总是需要,当您创建平面文件连接时,系统会自动识别列(如果有分隔符)并创建一系列名为:column0、column1 等的列,因此您可以将这些列映射到表;如果没有分隔符,可能你有一个固定的格式,但系统的行为方式相同。
  • @Alex 如果我有多个没有标题的平面文件。我应该遵循什么方法以便将列标题添加到每个文件中
  • 您的平面文件连接管理器可以应用于所有文件吗?因此,您可以在内部使用带有数据流任务的 Foreach 循环。
  • 是的,同一个平面文件 Connection Manager 可以应用于里面的所有文件

标签: sql-server ssis transformation data-cleaning


【解决方案1】:

您是要创建一个包含列名的新文件,还是只为列分配字段名以用于包的其余部分?

无论哪种方式,如果输入文件不包含列名,则按如下方式设置它们……

  1. 创建数据流任务并在数据流任务中创建平面文件源。
  2. 配置平面文件源并创建新的平面文件连接管理器
  3. 浏览到所需的输入文件并取消勾选第一行中的列名
  4. 选择“高级”并将所有默认名称(Coulmn 0、Coulmn 1 等)更改为所需的字段名称(和类型)。
  5. 点击确定

如果您需要创建一个包含列名的新文件,只需创建一个平面文件目标,这次打开第一行中的列名,将其连接到您创建的输入并将其保存到一个新文件

【讨论】:

  • 非常感谢您的解决方案,如果我有多个平面文件,需要列标题的另一件事是我应该创建一个循环并将其连接到只有列行的平面文件吗? ?它会工作吗?
【解决方案2】:

一种方法(可能不是最快的方法)是使用高级编辑器。

  1. 右键单击 Excel Source 组件并选择Show advanced editor

  2. 在新窗口中,您需要转到Input and Output Properties。你现在应该有这个了:

  3. 点击Output Columns下的一列(F1,F2,...)

  4. 在通用属性中,将名称编辑为您想要的。

我添加了一个派生列组件作为下一步,这就是我在可用列下看到的内容:

如您所见,F1(我在步骤 2 中编辑的)现在有了一个新的列名。

编辑:我不知何故假设您需要 Excel 使用此功能。无论如何,我希望它有所帮助。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2019-11-10
    • 1970-01-01
    • 2019-07-27
    • 1970-01-01
    • 1970-01-01
    • 2018-06-30
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多