【问题标题】:SSIS - Getting a Substring from Filename and Inserting into Database TableSSIS - 从文件名中获取子字符串并插入数据库表
【发布时间】:2013-09-16 00:46:15
【问题描述】:

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

这是一个文件名的示例:“yob1920.txt”

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

我的临时表的结构是:tblNames(year, name, gender, number)

我的要求:

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

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

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

我可以就从文件名中获取子字符串并将其插入到具有所述文件中不存在的列的数据库表中获得一些指导吗?

【问题讨论】:

  • 我不确定这个提示是否对您的情况有用,但以防万一:平面文件源的“组件属性”选项卡上的高级编辑器的“FileNameColumnName”属性将添加文件在您选择的列名称中将名称添加到数据流中。

标签: .net sql-server database ssis


【解决方案1】:

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

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

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

【讨论】:

  • 感谢摩根!这正是我所需要的。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2016-04-03
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多