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

时间:2013-09-16 00:46:15

标签: .net sql-server database ssis

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

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

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

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

我的要求:

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

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

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

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

1 个答案:

答案 0 :(得分:5)

首先,您可以使用 Foreach循环容器(Foreach文件枚举器)来循环放置源文件的目录。因此,您可以使用变量映射

将文件名存储到变量中

enter image description here

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

enter image description here

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

enter image description here