作为已存在的ETL过程的一部分,我不得不添加验证检查 这涉及将CSV文件的记录计数与随附的元数据进行比较。
此时元数据已经存储在数据库中,我设法通过添加一个执行SQL块并将输出存储到变量来获取它。
读取文件后,作为数据流任务的一部分[已在SSIS包中设计],我使用数据流中的行计数转换块从中捕获行计数。
我需要比较这些值,如果不相等,则失败。
我将如何完成这项工作?
到目前为止我尝试过的事情:
有什么想法吗?
答案 0 :(得分:0)
要重申,您有两个类型为整数的变量,如果它们不相等,您需要弄清楚如何使SSIS包失败。您从数据流中捕获行计数。数据流完成后,您可以将脚本任务(而不是脚本组件)添加到控制流并传入@ [User :: DbRowCount]和@ [User :: DfRowCount]
然后你的脚本会有像
那样的东西int dbRowCount = (int) this.Dts.Variables["DbRowCount"].Value;
int dfRowCount = (int) this.Dts.Variables["DfRowCount"].Value;
if (dbRowCount != dfRowCount)
{
this.Dts.Events.FireError(0, "Invalid row counts", "error", string.Empty, 0);
Dts.TaskResult = ScriptResults.Failure;
}