SSIS - 从文件名获取子字符串并插入数据库表

Rob*_*ert 1 .net database sql-server ssis

我在目录中有几个文件.文件名约定是yob + year + .txt

以下是一个文件名的示例:"yob1920.txt".

文件的结构如下name,sex,number:(注意没有年份字段,因为年份是文件名的一部分.

我的临时表的结构是:tblNames(年份,姓名,性别,数字)

我的要求:

  • 获取每个文件名的日期部分(1920年,1921年等)
  • 将其插入到一个名为Year的列的临时表中

我创建了一个多文件连接,一个foreach容器,在该容器内部,我有一个数据流任务,它遍历目录并插入数据.

问题是我不完全理解(即使在阅读了几个站点之后)变量如何与容器和实际完成工作的数据流任务相关.

我是否可以从文件名中获取子字符串并将其插入到具有所述文件中不存在的列的数据库表中?

mor*_*117 5

首先,您可以使用Foreach循环容器(Foreach文件枚举器)来循环放置源文件的目录.因此,您使用Variable Mappings将文件名存储到变量:

在此输入图像描述

然后创建一个平面文件连接,其连接字符串的表达式具有变量的值:

在此输入图像描述

然后,您可以使用"派生列"添加带有变量子字符串的新列:

在此输入图像描述