Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/security/4.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
Csv SSIS Foreach循环在同一目录中存在多个文件问题_Csv_Foreach_Ssis - Fatal编程技术网

Csv SSIS Foreach循环在同一目录中存在多个文件问题

Csv SSIS Foreach循环在同一目录中存在多个文件问题,csv,foreach,ssis,Csv,Foreach,Ssis,我有一个SSIS包,它从FTP服务器获取客户CSV文件,将它们原封不动地导入数据库中的暂存表中,然后从那里规范化暂存数据,最后将其移动到相应的ODS模式表中 我让这个包在测试环境中正常工作,使用示例文件每个文件只包含完整文件将拥有的数据的一个百分比,但现在我正试图使用完整文件在生产环境中部署它,包的第一部分失败,出现以下错误: [平面文件源[2]]错误:读取文件时发生意外的磁盘I/O错误 软件包的配置如下所示: 有一个序列容器,其中包含4个ForEach文件枚举数。每个Foreach循环都设置为

我有一个SSIS包,它从FTP服务器获取客户CSV文件,将它们原封不动地导入数据库中的暂存表中,然后从那里规范化暂存数据,最后将其移动到相应的ODS模式表中

我让这个包在测试环境中正常工作,使用示例文件每个文件只包含完整文件将拥有的数据的一个百分比,但现在我正试图使用完整文件在生产环境中部署它,包的第一部分失败,出现以下错误:

[平面文件源[2]]错误:读取文件时发生意外的磁盘I/O错误

软件包的配置如下所示:

有一个序列容器,其中包含4个ForEach文件枚举数。每个Foreach循环都设置为相同的文件夹/目录,并使用通配符在目录中循环以查找具有特定名称的文件,例如Foreach a在目录中查找名为a_u.csv的文件,Foreach B在查找B_u.csv的文件等。。当每个foreach找到其文件时,它会将数据从csv复制到db stage.a、stage.b等中的相应表中

对我来说,这个错误听起来像是foreach循环通过在同一时间循环同一个目录而互相锁定-这是以有效的方式设置的,还是有更好的方式来实现相同的目标?真正让我困惑的是,这个软件包在很长一段时间内一直在工作,我最初设置它的方式

我现在能让它工作的唯一方法是使用箭头使每个foreach循环的包流程在进入下一个循环之前单独进行

每种不同类型的文件是否应该位于主目录中自己的子文件夹中

对不起,如果这已经得到了回答-我在这里搜索,以及谷歌在过去几天,没有找到任何类似的

谢谢

编辑:这里是唯一的其他错误消息。所有4个foreach循环都会因这两个错误而失败,前提是它们同时运行。如果我强迫他们一个接一个地运行,一切正常

[SSIS.Pipeline] Error: SSIS Error Code DTS_E_PRIMEOUTPUTFAILED.  The PrimeOutput method on Flat File Source returned error code 0xC020209D.  The component returned a failure code when the pipeline engine called PrimeOutput(). The meaning of the failure code is defined by the component, but the error is fatal and the pipeline stopped executing.  There may be error messages posted before this with more information about the failure.

当SSIS包崩溃时,通常会生成多个错误。你有没有可能发布完整的输出?警告和/或信息性事件也可能有帮助。您是否在服务器上运行包,使用具有相关文件夹访问权限的代理帐户,并对所有内容使用FQDN?谢谢大家的回复。我在我的原始帖子中添加了另一条错误消息,作为对Eric的回应:我认为我没有使用代理帐户…该包实际上是由Windows任务计划程序启动的,它启动一个批处理文件,该批处理文件使用dtexec exe触发.dtsx,而不是通过SQL Server AgentLook at和at。你的输入有些古怪。设置一些日志记录并深入研究。