Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/ssis/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
如何使用动态文件名SSIS将excel文件中的数据提取到数据库中_Ssis_Ssis 2008 - Fatal编程技术网

如何使用动态文件名SSIS将excel文件中的数据提取到数据库中

如何使用动态文件名SSIS将excel文件中的数据提取到数据库中,ssis,ssis-2008,Ssis,Ssis 2008,你能帮帮我吗 在源文件中使用动态文件名将数据从excel加载到数据库时遇到问题 例如,对于这个月,我的文件名是ABC 31122017.xlsx。我成功地将此excel文件中每个选项卡的数据加载到数据库中 但我如何让它充满活力呢?例如下个月我有excel文件 ABC 31012018.xlsx。如何使作业动态地拾取新文件 我可以将日期放在变量中,但我不知道如何在SSIS中处理文件路径 @[User::InputPath] + "ABC " + @[User::Report_DT_DDMMYYY

你能帮帮我吗

在源文件中使用动态文件名将数据从excel加载到数据库时遇到问题

例如,对于这个月,我的文件名是ABC 31122017.xlsx。我成功地将此excel文件中每个选项卡的数据加载到数据库中

但我如何让它充满活力呢?例如下个月我有excel文件 ABC 31012018.xlsx。如何使作业动态地拾取新文件

我可以将日期放在变量中,但我不知道如何在SSIS中处理文件路径

@[User::InputPath] + "ABC " +  @[User::Report_DT_DDMMYYYY] + ".xlsx"    
我已经在连接的表达式中使用了它,设置了ExcelFilePath,但它无法工作

与SSIS中的Excel Source connector一样,我已经选择了31122017.xlsx并选择了第一个选项卡。但是在我输入表达式之后,它找不到我已经选择的第一个选项卡


请帮帮我,伙计们。谢谢。

可能在下面解释将帮助您克服此问题(我有SSIS 2012)-

  • 第一个SSIS变量将保存日期值,即“20180218”。变量名-TodayDate。此变量值将根据今天的日期进行更改
  • 第二个SSIS变量将保存文件名,即“D:\SSIS\StackOverFlowTest1\InputFiles\AB”+@[User::TodayDate]+“.xlsx”。变量名-文件名Excel
  • 为excel创建连接管理器,并在其属性窗口下更改表达式,并将ExcelFilePath设置为“FileNameExcel”
  • 将“数据流任务”属性下的“延迟验证”更改为True
  • 使用foreach:

  • 设置字符串变量fileName(输入实际的文件路径/文件名),以便开发包
  • 添加Foreach循环(默认的文件枚举器)
  • 为目录设置表达式=@InputPath
  • 将文件设置为excel文件的正确掩码(即“ABD*.xlsx”)
  • 转到变量映射并链接到文件名
  • 添加Excel连接并连接到实际文件
  • 将属性上的表达式设置为ExcelFilePath=@fileName
  • 延迟验证
  • 按照正常方式开发数据流

  • 如果该目录中只有一个文件以“ABC”开头,那么我会使用foreach循环。根据我的经验,您不会在特定日期(尤其是今天)获取该文件。它通常是过期的。