gpt4 book ai didi

sql-server - 将数据流任务的聚合值捕获到变量中

转载 作者:行者123 更新时间:2023-12-02 22:31:20 25 4
gpt4 key购买 nike

我有一个 OLEDB (SQL) 数据流源 (A),它从存储过程中提取结果集并将结果放入 OLEDB (Oracle) 数据流目标 (B)。

有没有办法将数据集中的聚合值捕获到变量中,所有这些都在数据流任务中?具体来说,我想捕获 MAX(<DateValue>)来自整个数据集。

dataflowwithcapture

否则,无论我指向 A 还是其新位置 B,我都必须在不同的数据流任务中提取相同的数据两次。

编辑:我已经知道如何在执行 SQL 任务的控制流中执行此操作。我之所以这么问,是因为我很好奇是否可以在数据流任务中完成此操作,因为我已经在那里收集数据了。有没有办法获取数据流中的聚合值?

最佳答案

一种方法是在源和目标之间添加多播转换,该转换也将输入到脚本组件中。

虽然聚合转换也可以工作,但该方法避免了添加阻塞转换

enter image description here

将脚本组件配置为目标,为其提供对变量的读/写访问权限,然后将脚本编辑为类似的内容

//Instance level variable
DateTime? maxDate = null;

public override void PostExecute()
{
base.PostExecute();

if (maxDate.HasValue)
{
this.Variables.MaxDate = maxDate.Value;
}

System.Windows.Forms.MessageBox.Show(this.Variables.MaxDate.ToString());
}


public override void Input0_ProcessInputRow(Input0Buffer Row)
{
if (!Row.createdate_IsNull)
{
maxDate = Row.createdate < maxDate ? maxDate : Row.createdate;
}
}

关于sql-server - 将数据流任务的聚合值捕获到变量中,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/23943904/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com