【问题标题】:Load excel files based on file date selection根据文件日期选择加载excel文件
【发布时间】:2018-11-05 19:33:03
【问题描述】:

我有一个 SSIS 要求:

我有三个 Excel 文件,文件名中的日期不同,存储在一个文件夹中。

文件夹路径:D:\SourceFolder\

文件名:Asia_Sale_07May2018.xlsxAsia_Sale_20Jun2018.xlsxAsia_Sale_15Aug2018.xlsx

我的包参数日期为07/15/2018

要求:处理文件名日期=参数日期的文件。

如果我将参数日期设置为 07/15/2018 包应该选择并加载 Asia_Sale_15Aug2018.xlsx

如果我将参数日期设置为06/20/2018,包应该选择并加载Asia_Sale_20Jun2018.xlsx

如果我将参数日期设置为 05/07/2018,包应该选择并加载 Asia_Sale_07May2018.xlsx

谢谢, 艾曼

【问题讨论】:

    标签: ssis ssis-2012


    【解决方案1】:

    1.使用 ForEach 循环遍历文件并获取文件名并使用子字符串仅获取日期部分(在您的情况下为 07May2018/20Jun2018/15Aug2018)。使用 convert 函数将其转换为您想要的格式。

    select convert(varchar,convert(date,'15Aug2018'),101) 
    

    2.在控制流中使用优先约束,比较两个值并在匹配时加载文件。

    【讨论】:

    • 这是正确的方法。通过表达式从文件名中提取日期,并使用 foreach 循环遍历并提取与参数匹配的文件。
    【解决方案2】:

    我会构建您要查找的文件的名称并使用 foreach 循环查找该特定文件。

    C# 的逻辑是:

    DateTime dt = DateTime.Parse("1/1/2018"); //Just set from your parameter
    
    string str_dt  = dt.ToString("ddMMMyyyy");
    
    string fname = "Asia_Sale_" + str_dt + ".xlsx";
    

    一旦你得到它,使用你的变量来检查你的 foreach 循环中的文件。

    【讨论】:

      猜你喜欢
      • 2019-06-24
      • 1970-01-01
      • 2017-12-15
      • 1970-01-01
      • 1970-01-01
      • 2019-04-01
      • 2020-03-16
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多