比较SSIS中的2个变量

时间:2016-11-09 21:11:36

标签: ssis

作为已存在的ETL过程的一部分,我不得不添加验证检查 这涉及将CSV文件的记录计数与随附的元数据进行比较。

此时元数据已经存储在数据库中,我设法通过添加一个执行SQL块并将输出存储到变量来获取它。
读取文件后,作为数据流任务的一部分[已在SSIS包中设计],我使用数据流中的行计数转换块从中捕获行计数。

我需要比较这些值,如果不相等,则失败。

我将如何完成这项工作?

到目前为止我尝试过的事情:

        
  1. 使用脚本组件将2个变量捕获为ReadOnly输入但由于无法在脚本内部无法访问变量,因此无效     
  2. 使用了查找转换,但我无法比较变量
  3. 有什么想法吗?

1 个答案:

答案 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;
}