SSIS 错误处理:在SQL Server Integration Services中,当从源提取数据、将数据加载到目标或执行转换时,可能会发生错误。这是由于意外数据,并且使包失败是不好的做法。为了处理这些情况,SSIS引入了错误处理的概念。让我们通过一个例子看看如何配置错误处理。
为了进行 SSIS 演示,我们将把 Employee.xls 中的数据导出到 SQL Server 数据库表中,并在数据转换时配置错误处理。下面的屏幕截图将向您展示 Employee Excel 文件中的数据。

从上面的屏幕截图可以看出,EmpId 为 2、13、14 的职业长度大于 255。
SSIS 中的错误处理示例
将数据流任务从工具箱拖放到控制流,并将其名称更改为“错误处理”。

双击它将打开Integration Service 数据流选项卡。现在,从工具箱拖放 Excel 源、数据转换和 OLEDB 目标到数据流区域。

双击 Excel 源将打开连接管理器设置,并提供一个选择包含源数据的表的选项。在这里,我们选择文件系统中的 Employees.xls 文件。

从上面的屏幕截图可以看出,我们正在选择 Employee.xls 文件中存在的 Employee_Destination 表。

单击“确定”,然后从 Excel 源将蓝色箭头拖到数据转换。它允许转换使用源数据。
接下来,请双击数据转换以编辑并将其源列的数据类型转换为所需的具有长度的数据类型。
在这里,我们将职业长度保留为 255,因为我们希望故意使包失败。

现在我们需要提供目标表详细信息。因此,双击 OLE DB 目标并提供所需信息。从下方可以看到,我们选择了 Duplicate Employee Error Handler 表。

单击“映射”选项卡以检查源列是否已正确映射到目标列。

单击“确定”关闭上述窗口。
配置 SSIS 中的错误处理
拖放另一个 OLE DB 目标以配置错误处理以存储错误输出。接下来,将红色线条从数据转换(错误输出)拖到 OLE DB 目标 1。

将错误输出拖到 OLEDB 目标将打开以下窗口。您必须使用此窗口来配置错误处理。默认情况下,所有列都指向“失败组件”属性。

错误输出提供三个 SSIS 错误处理选项:
- 失败组件:如果发生错误,则转换、源、目标等将失败。
- 忽略失败:它将忽略行中的失败。
- 重定向行:它将成功行返回到指定的目标,并将失败行返回到失败输出。它不会使任务失败。
请将错误和截断列的选项更改为“重定向行”。

单击“确定”关闭“配置错误输出”窗口。

双击OLE DB 目标1 将打开目标编辑器。目前,我们正在使用“新建”按钮创建一个新表。

单击“映射”选项卡以验证源列是否与目标列完全映射。

单击“确定”完成 OLE-DB 目标的配置。下图是最终的 SSIS 错误处理包。

让我们运行 SSIS 中的错误处理包。从下面的屏幕截图可以看出,它将 11 行(成功)重定向到 OLE DB 目标,将 3 行重定向到错误输出。

请打开Management Studio 以检查包结果。

接下来,打开第二个SQL 表以检查错误返回的记录。

评论已关闭。