1

嗨,我如何读取具有动态文件名的文件?在 ssis 中用于将 csv 数据导入我的数据库。

csv 文件命名约定可以是:File-ddmmyyyyhhmmss.txt

有人可以建议吗?

4

3 回答 3

1

将平面文件动态加载到目标的步骤。

  • 使用Foreach loop container
  • 在 Collection 选项卡中,选择 Enumerator asForeach File Enumerator并按如下方式配置。

文件夹:源文件的位置

文件:File-*.txt[因为您的文件命名类似于 File-ddmmyyyyhhmmss.txt]

检索文件名:选择Fully qualified Name[这会带来文件的整个位置]

在此处输入图像描述

  • Variable Mapping中,创建一个变量来存储Full file path 和配置,如屏幕截图所示。

在此处输入图像描述

  • 创建Flat file connection使用示例文件。
  • 选择一个平面文件并转到properties. 找到expression propertymap the variable to the connection string,如下面的屏幕截图所示。 在此处输入图像描述

重要的提示:

如果要在加载到目标表之前验证文件名和文件名的存在。使用里面的脚本组件For each loop container和验证。

希望这可以帮助。

于 2013-01-29T11:11:50.430 回答
0

这是一步一步的指南

  1. 使用Foreach Loop Container(File Enumerator type) ,将文件掩码设置为File-??????????????.txt
  2. 映射字符串变量以捕获匹配文件。
  3. Script Task在此容器内添加一个以解析字符串变量以匹配实际的文件命名约定(提示:使用正则表达式)。任何成功的匹配都将起到过滤Foreach Loop Container.
于 2013-01-29T09:12:16.703 回答
0

请参阅 Microsoft 的此学习系列:

https://docs.microsoft.com/en-us/sql/integration-services/lesson-2-adding-looping-with-ssis?view=sql-server-2017

于 2018-08-16T04:01:25.453 回答