我正在尝试在SSIS中创建一个集成包,以便从每天生成的文件中将数据加载到SQL数据库,文件名格式为“AAA_YYYYMMDDXXXXXX”。我知道如何使用变量函数生成带有时间戳的文件名,但我不知道如何处理“XXXXXX”,这是每次不同的6个不可预测的数字。
我尝试选择最新的文件,但它不起作用,因为每天更新的同一文件夹中的其他文件可能导致加载错误的数据。
答案 0 :(得分:0)
为每个循环使用a来处理目录并在文件名上设置表达式。既然您知道日期是相同的并且只是担心最终的XXXXX字符,您可以使用通配符。
使用表达式生成文件名的变量:
"AAA" + (DT_WSTR, 4) YEAR(GETDATE() ) + RIGHT("0" + (DT_WSTR, 2)MONTH(GETDATE()), 2) + RIGHT("0" + (DT_WSTR, 2) DAY(GETDATE()) , 2) + "*.csv"
配置变量后,在FileSpec属性上设置一个等于变量的表达式。现在,程序包将循环并仅捕获最近一天的文件
在for循环中,您可以构建数据流以将文件加载到数据库中。