如何为SSIS中的每个循环容器上载两个名称几乎相同的文件?
我有两个几乎同名的CSV文件 1.S101053_345_1809.csv 2.SAS101053_345_1809.csv 文件名模式如下所示。 1.第一个是销售文件。“S”表示销售文件,101053表示经销商代码,345表示公司代码,1809表示年份和月份。 2.第二个是库存和销售文件。“SAS”表示库存和销售,101053表示经销商代码,345表示公司代码,1809表示年份和月份 我试图通过SSIS中的每个文件循环容器上传数据。对于SAS,文件包执行良好,文件上传成功。但当它迭代S文件(销售文件)时,它会同时读取这两个文件。销售、库存和销售。因为它在两个文件的开头都找到了“S”。附件是“每个循环容器”的配置截图 对于每个循环容器配置:如何为SSIS中的每个循环容器上载两个名称几乎相同的文件?,ssis,integration,ssis-2012,Ssis,Integration,Ssis 2012,我有两个几乎同名的CSV文件 1.S101053_345_1809.csv 2.SAS101053_345_1809.csv 文件名模式如下所示。 1.第一个是销售文件。“S”表示销售文件,101053表示经销商代码,345表示公司代码,1809表示年份和月份。 2.第二个是库存和销售文件。“SAS”表示库存和销售,101053表示经销商代码,345表示公司代码,1809表示年份和月份 我试图通过SSIS中的每个文件循环容器上传数据。对于SAS,文件包执行良好,文件上传成功。但当它迭代S文件(销
如何从同一文件夹上载两个文件。您可以插入脚本组件来查询文件名。如果它包含“SAS”,则设置忽略标志变量。然后检查并将“SAS”文件发送到空白序列容器 脚本应该是这样的
StrFileName = Dts.Variables("varFileName").Value.ToString
'varfilename is the name returned from the for each loop
IntInstr = InStr(StrFileName, "SAS")
if IntInstr = 0 then
' if "SAS" is not found in the filename then set the varFileOK to True
Dts.Variables("varFileOK").Value = True
Else
Dts.Variables("varFileOK").Value = False
End If
Dts.TaskResult = Dts.Results.Success
然后使用数据流箭头上的“表达式和约束”“编辑”功能测试“VarFileOK”的值
如果为True,则将数据指向“要忽略的文件”数据流
如果为False,则处理文件。尝试两个foreach循环。第一次查找SAS*.csv,第二次查找S*.csv这假设您在加载后将文件移动到已处理文件夹。您好,感谢您的回复。。我不习惯C代码。如果可能的话,你能给我完整的c脚本吗。。再次感谢。@ShahabHaidar不幸的是,我只在vb.net中工作。不过,将其转换为c并不难。请看这里: