SSIS Foreach 循环容器读取文件并加载到数据库中,在执行过程中崩溃
SSIS Foreach Loop Container to read files and load into DB getting crash during execution
我正在尝试使用 Foreach Loop Container & DataFlow task in 将多个文件从一个位置加载到数据库中]SSIS.
当我尝试执行程序包时它崩溃了。它没有给出任何错误消息,每当我执行程序包时它就会崩溃并立即关闭 visual studio 应用程序。我必须在任务管理器中终止调试任务,以便下次执行包。
所以我尝试了以下步骤:
- 我使用 FileSystem 任务 而不是 DataFlow 任务
将所有文件从源移动到存档目录,运行
很好,没有任何问题。
- 运行 DataFlow 任务 分别将单个文件加载到数据库中,
也执行成功了。
我不知道这里出了什么问题。任何帮助,将不胜感激!谢谢!
截图
所有屏幕截图对我来说都很好。我会给出一些提示来尝试找出问题所在。
由于文件系统任务执行没有任何问题,所以ForEach Loop Container也没有问题。您可以尝试删除 OLE DB Destination 并将其替换为虚拟任务以检查它是否导致问题。如果问题仍然存在,则意味着 平面文件源 可能是原因。
值得尝试的事情
- 确保
TargetServerVersion
准确无误。您可以在以下文章中了解有关此 属性 的更多信息:How to change TargetServerVersion of my SSIS Project
- 尝试 运行 32 位模式下的程序包。您可以通过将
Run64bitRuntime
属性 更改为 False
来执行此操作。您可以在以下文章中了解有关此 属性 的更多信息:Run64bitRunTime debugging property
- 运行 Visual Studio 处于安全模式。您可以使用以下命令
devenv.exe /safemode
.
解决方法 - 使用批量插入
因为您要将平面文件插入 SQL 数据库而没有执行任何转换。为什么不使用SSIS Bulk Insert Task。您可以参考以下 step-by-step 指南了解更多信息:
如官方文档所述,请确保满足以下要求:
- 服务器必须有权访问文件和目标数据库。
- 服务器运行大容量插入任务。因此,任务使用的任何格式文件都必须位于服务器上。
- 批量插入任务加载的源文件可以与插入数据的 SQL 服务器数据库位于同一台服务器上,也可以位于远程服务器上。如果文件位于远程服务器上,您必须在路径中使用通用命名约定 (UNC) 名称指定文件名。
我正在尝试使用 Foreach Loop Container & DataFlow task in 将多个文件从一个位置加载到数据库中]SSIS.
当我尝试执行程序包时它崩溃了。它没有给出任何错误消息,每当我执行程序包时它就会崩溃并立即关闭 visual studio 应用程序。我必须在任务管理器中终止调试任务,以便下次执行包。
所以我尝试了以下步骤:
- 我使用 FileSystem 任务 而不是 DataFlow 任务 将所有文件从源移动到存档目录,运行 很好,没有任何问题。
- 运行 DataFlow 任务 分别将单个文件加载到数据库中, 也执行成功了。
我不知道这里出了什么问题。任何帮助,将不胜感激!谢谢!
截图
所有屏幕截图对我来说都很好。我会给出一些提示来尝试找出问题所在。
由于文件系统任务执行没有任何问题,所以ForEach Loop Container也没有问题。您可以尝试删除 OLE DB Destination 并将其替换为虚拟任务以检查它是否导致问题。如果问题仍然存在,则意味着 平面文件源 可能是原因。
值得尝试的事情
- 确保
TargetServerVersion
准确无误。您可以在以下文章中了解有关此 属性 的更多信息:How to change TargetServerVersion of my SSIS Project - 尝试 运行 32 位模式下的程序包。您可以通过将
Run64bitRuntime
属性 更改为False
来执行此操作。您可以在以下文章中了解有关此 属性 的更多信息:Run64bitRunTime debugging property - 运行 Visual Studio 处于安全模式。您可以使用以下命令
devenv.exe /safemode
.
解决方法 - 使用批量插入
因为您要将平面文件插入 SQL 数据库而没有执行任何转换。为什么不使用SSIS Bulk Insert Task。您可以参考以下 step-by-step 指南了解更多信息:
如官方文档所述,请确保满足以下要求:
- 服务器必须有权访问文件和目标数据库。
- 服务器运行大容量插入任务。因此,任务使用的任何格式文件都必须位于服务器上。
- 批量插入任务加载的源文件可以与插入数据的 SQL 服务器数据库位于同一台服务器上,也可以位于远程服务器上。如果文件位于远程服务器上,您必须在路径中使用通用命名约定 (UNC) 名称指定文件名。