【问题标题】:Microsoft SSIS Conditional Split is not working correctlyMicrosoft SSIS 条件拆分无法正常工作
【发布时间】:2019-07-23 19:12:14
【问题描述】:

如果两个计数匹配,我需要根据源文件记录计数和处理数据计数进行数据的条件拆分,那么我只需要执行插入到数据库表中,但是我的条件拆分失败的一些地方请找到屏幕拍下来告诉我怎么回事

【问题讨论】:

  • 两个变量@[User::v_OriginalRowCount] 存储源文件的计数,@[User::v_extractRowCount] 存储过程数据的计数,条件拆分条件为@[User::v_OriginalRowCount] = = @[用户::v_extractRowCount]
  • 你如何得到@[User::v_OrigianlRowCount]?这一项只能得到最后一行被处理,对于@[User::v_extractRowCount],进程数据的计数意味着行已经被处理了吗?

标签: sql-server ssis etl ssis-2012


【解决方案1】:

我认为您无法在一个数据流任务中实现这一目标,因为变量值是在数据流任务执行结束时提交的。

在您的情况下,它将始终显示行数相等,因为它们都等于零。

您必须创建 2 个数据流任务和一个脚本任务:

  1. 获取原始计数和提取计数并将它们存储在两个变量中的第一个数据流任务。
  2. 第二个数据流任务是将数据导入 OLE DB 目标(只是平面文件源和 OLE DB 目标)
  3. 脚本任务是通知用户数据无效

在第一个 DFT 和第二个 DFT 之间添加优先约束。另外,在第一个 DFT 和 Script Task 之间添加一个优先约束

在每个优先约束上添加一个表达式:

数据流任务之间

@[User:OriginalRowCount] == @[User::ExtractedRowCount]

DFT 和脚本任务之间

@[User:OriginalRowCount] != @[User::ExtractedRowCount]

【讨论】:

  • 您能否通过参考所附图片给我建议
  • 与发送成功或失败电子邮件的方式相同,如果行数相等,则添加数据流任务,另一方面添加脚本任务或其他任务以通知用户行数不等于
【解决方案2】:

在条件拆分和 OutputRowCount 之间的优先约束上放置一个表达式,并在其中放置相同的表达式。简单的修复。

【讨论】:

  • 如何在数据流中提供优先约束
  • 这是我的控制流程
猜你喜欢
  • 2011-10-21
  • 1970-01-01
  • 2012-10-19
  • 2016-05-24
  • 1970-01-01
  • 1970-01-01
  • 2014-11-07
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多