【问题标题】:can ssis pick up the file with the latest date creation?ssis 可以获取最新创建日期的文件吗?
【发布时间】:2015-01-25 11:32:08
【问题描述】:

我正在考虑使用 ssis 读取文件夹中的 excel 文件。

文件夹每天更新,放入新文件,不删除任何旧文件。

我现在使用“for each”容器循环所有文件并将它们加载到一个合并表中。

但是老板只想要最新的文件加载到表中,他不想要增量表。

ssis 是否可以使用 ssis 中的某些函数检查文件创建日期并仅加载最新的?

【问题讨论】:

  • 请不要只求我们为您解决问题。向我们展示如何尝试自己解决问题,然后向我们确切地展示结果是什么,并告诉我们您为什么觉得它不起作用。请参阅“What Have You Tried?”了解您真正需要阅读的优秀文章。
  • “我正在考虑使用 ssis 读取文件夹中的 excel 文件” - 这将是您的第一个错误!每次我错误地产生这种想法时,理智就会占上风,我用 C# 来做(选择一种不是 SSIS 的语言)
  • @MitchWheat 我不同意。根据电子表格的结构,在某些情况下 SSIS 肯定是适合这项工作的工具。如果结构简单,那么 SSIS 就可以了。否则我同意 C# 和 OpenXML SDK 是更好的方法。
  • @Greg:每次我想“这是读取文件夹中的多个 excel 文件。我知道!我会使用 SSIS。”每次我都后悔。您对包进行了一次更改,最终会重新配置它。太疯狂了。

标签: ssis ssis-2012


【解决方案1】:
ou can use this script:

      public void Main()
         {

      // TODO: Add your code here
             var directory= new DirectoryInfo(Dts.Variables["User::VarFolderPath"].Value.ToString());

            FileInfo[] files = directory.GetFiles();
            DateTime lastModified = DateTime.MinValue;

             foreach (FileInfo file in files)
            {
                if (file.LastWriteTime > lastModified)
                {
                    lastModified = file.LastWriteTime;
                    Dts.Variables["User::VarFileName"].Value = file.ToString();
                }
            }

             MessageBox.Show(Dts.Variables["User::VarFileName"].Value.ToString());


             Dts.TaskResult = (int)ScriptResults.Success;
         }

您也可以点击以下链接:

http://sqlage.blogspot.in/2013/12/ssis-how-to-get-most-recent-file-from.html

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2011-01-23
    • 1970-01-01
    相关资源
    最近更新 更多