sql-server - 如何在SSIS数据流中捕获多个错误列

标签 sql-server error-handling ssis etl

我遇到一种情况,我想捕获所有导致错误的列。为此,我有一个工作正常的数据流,使用脚本组件更改了导致数据流失败的列的目标数据类型,我能够捕获导致该问题的列名,现在我引入了另一种数据类型更改,但现在它捕获的是最新更改的列名,但没有捕获有问题的两个列名。

有没有一种方法可以将两个或多个导致数据流失败的列名插入到目标平面文件中用逗号分隔的列中。

最佳答案

根据您的评论,我想建议一个脚本组件并在那里执行数据验证:

添加新的输出,称为错误,包含三列:

KeyToRecord [正确的dataType]
strDataInCol字符串
错误原因字符串

然后进行各种检查:

if(Row.Col1.Length > 50)
{
    OutputError.AddRow();
    OutputError.KeyToRecord = Row.RecordKey;
    OutputError.strDataInCol = Row.Col1.ToString();
    OutputError.ErrorReason = "Column1 is greater than 50 chars";
}

等等,通过您的所有检查。

这将为您提供文件中的错误列表。

关于sql-server - 如何在SSIS数据流中捕获多个错误列,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/55974639/

相关文章:

Javascript - 触发错误

sql-server - 如何将SSIS包部署到Azure?

sql-server-2005 - 创建 SSIS 作业时出现 "The selected data source is on remote computer"错误

c# - 正则表达式 '\b' 的 T-SQL 等效项

sql-server - 将数据从 Excel/CSV 导入到 SQL Server

c# - 哪种 sql server 数据类型最能代表 C# 中的 double ?

sql - MSSQL 2008 R2 中没有聚合函数的数据透视

c# - 并非所有代码路径都返回一个值 sql

java - 如何监听 servlet 请求范围内的所有错误?

sql-server - 在非 SSIS 服务器上运行 SSIS 包时出错