【问题标题】:File identification using part of a filename in SSIS在 SSIS 中使用文件名的一部分进行文件识别
【发布时间】:2016-04-27 12:13:14
【问题描述】:

我希望有人可以帮助我或指出方向,因为搜索没有返回我正在寻找的东西。

我对 SSIS 还是很陌生,而且我已经获得了每月将三个文件加载到单独的表中的规范。每个月他们所在的文件夹都会改变,文件名也会改变。也不能保证文件名以后会保持不变。

我已经通过各种博客和提示解决了不断变化的文件夹(感谢 SSIS 社区!),但我无法确定哪个文件进入哪个表并更改名称。

此时调用的三个文件:

extract_mmes_ae_1415_APPROVED_80_12042016_6.txt extract_mmes_ip_1415_APPROVED_81_12042016_6.txt extract_mmes_apc_1415_APPROVED_82_12042016_6.txt

我希望他们下个月会打电话给:

extract_mmes_ae_1415_APPROVED_83_12042016_6.txt extract_mmes_ip_1415_APPROVED_84_12042016_6.txt extract_mmes_apc_1415_APPROVED_85_12042016_6.txt

它们也可以更改名称,唯一保持一致的是文件中的 aeopapc 子字符串作为标识符,但字符串位置可能会改变。我的直觉告诉我,这可能是错误的,我需要使用每次都会更改的参数来查找 aeipapc 在平面文件源文件名中的文件名中,然后将目标表更改为三个中的一个,但是我不知道如何获取参数。

是否有人能够提供建议,或者告诉我错误并以另一种方式看待它。

【问题讨论】:

  • 我怀疑除了日期 12042016 到 12052016 之外的名称是否会更改,但这只是一个猜测……如果您获得了这些文件的规范。它没有提到任何文件名创建规则?也许是你要求的时候了。其他一切都只是猜测。
  • 是的,日期和日期之前的数字每次都会改变,但这对我没有帮助,因为每个文件中的数据不同,但每个文件的创建日期总是相同的。我需要确保AE文件被加载到AE中,IP到IP等等,因为每个文件中的数据不同,不能放在同一个表中。
  • 如下文所述,每个循环容器使用三个(每个文件一个)并使用正确通配符。例如,您的第一个文件的通配符类似于extract_mmes_ae_*.txt
  • 谢谢尼克。我没有发布通配符会使它变得如此简单。多亏了你们俩。

标签: sql sql-server ssis sql-server-data-tools


【解决方案1】:

我认为你应该做的是创建一个Foreach Loop Container 来遍历文件夹中的所有文件,然后或者编写一个脚本来确定它是否是你感兴趣的文件或使用Foreach File Enumerator,如另一个问题所述:SSIS Flat File Wildcard Filename

【讨论】:

  • 谢谢我试试这个。
  • 告诉我进展如何。
  • 我得到了它的工作谢谢。我不知道在指定文件名时可以使用通配符。感谢您的帮助。
猜你喜欢
  • 1970-01-01
  • 2014-10-20
  • 2015-12-23
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2020-01-27
  • 1970-01-01
相关资源
最近更新 更多