【问题标题】:Load multiple CSVs, extract file name append as column and archive SSIS加载多个 CSV,提取文件名附加为列并存档 SSIS
【发布时间】:2016-05-13 14:30:59
【问题描述】:

好的,我正在使用 SQL Server 2012。

我有一个包含 CSV 文件的“订单文件夹”。我需要遍历 csv 文件,将它们加载到 SQL 表中,然后将 csv 移动到“存档文件夹”中。我想在 SSIS 中执行此操作,并且知道使用 Foreach 循环容器可以做到这一点,我理解。

CSV 文件具有以下标题:

客户/项目/数量/日期

我的 SQL 表有以下标题:

客户/项目/数量/日期/用户

棘手的一点是 csv 文件包含每个订单的用户名,并且命名如下:(用户名明显改变)

FWD_Order_USERNAME_01_02_2016_1006_214.csv

我需要在导入每个 csv 文件时提取 USERNAME 并将其附加到 SQL 表中 - 我该怎么做?

谢谢,

迈克尔

【问题讨论】:

  • “追加到SQL表”是什么意思?将其添加为列?一排?还有什么?
  • 对不起 - 从 csv 文件名中提取用户名并将其插入 SQL 表中的用户字段
  • 你怎么知道用户名是什么?是_分隔的第三个实体吗?

标签: sql-server csv ssis


【解决方案1】:

您可以使用文件名中的用户名填充包变量,并使用派生列转换将其添加为数据流中的新列。

【讨论】:

    【解决方案2】:

    您正在使用 for 每个循环来处理文件。 您必须将文件名存储在变量中。

    1) 再创建一个变量user名称并使用表达式设置值属性表达式(获取用户名),设置属性EvaluateAsExpression = true;对于变量。

    2) 在数据流中添加派生列,使用 用户变量 将其映射到目标中的用户列。

    【讨论】:

      猜你喜欢
      • 2021-11-10
      • 2019-06-07
      • 2019-12-27
      • 2021-11-26
      • 1970-01-01
      • 2014-12-17
      • 1970-01-01
      • 1970-01-01
      • 2017-08-03
      相关资源
      最近更新 更多