Foreach循环容器无法遍历文件夹中的所有文件

时间:2011-11-29 09:42:39

标签: sql-server ssis

我有一个临时文件夹C:\Mydata,我有.csv个文件名 demo1.csv demo2.csv ...等

现在我想将所有这些文件中的数据插入数据库表

为此我在{I} Foreach Loop Container中提到了Directory C:\Mydata Foreach Loop ContainerData Flow TaskFlat File Sourcefile name.csv中的连接管理器属性中有C:\DEMO\*.csv我应该提及什么,以便它遍历所有文件夹和所有文件扩展名为no file found path is wrong 我确实喜欢{{1}}这给了我错误: {{1}}

2 个答案:

答案 0 :(得分:3)

根据我的解释,您的问题是将结果文件从foreach分配给连接器。

为此,您需要将Foreach中的文件名分配给变量。

要采取的第一步是创建变量。为此,您需要激活“变量”窗口: Activating "Variables" window

然后你需要创建一个string类型的新变量并重命名它。

Creating a new varible

有关SSIS变量及其创建方法的更多信息,请参阅http://msdn.microsoft.com/en-us/library/ms140216.aspx

现在你需要将新变量(在本例中我命名为“filename”)分配给foreach循环: foreach loop steps 请注意,在第一个窗口中选择“仅限名称”选项时,在您的情况下,您可能希望“完全合格”!!

屏幕截图取自我所拥有的工作项目,我只使用名称(仅限名称)而不是完整路径(完全合格)

执行此操作后,您需要使用表达式将该变量分配给平面文件连接器:

setting your connector

答案 1 :(得分:2)

您使用的是哪个版本的MSSQL和SSIS?你为什么在一个地方使用C:\ Mydata而在另一个地方使用C:\ DEMO?

描述了循环文件的基本技术here

在文档和网络上有很多关于这些步骤的信息。如果您需要更多帮助,请尽可能具体说明您尝试过的内容,哪些内容无效,您正在使用哪些版本等。