在 IBM datastage 中生成序列号

问题描述 投票:0回答:1

我有一个生成序列号的请求,应该按以下方式完成

  1. 从 seq 跟踪表中检索初始值

  2. 使用该值作为序列号,并在更新时将其添加为另一个并行进程中的列。

  3. 作业完成后,应在跟踪器表中更新最大值,以便在下一次运行中从该数字开始

示例

跟踪表中的初始值:1

存储的数据应为

A 1 乙2 C 3

3 现在将被存储在 tracker 表中,所以现在初始值为 3

下一个作业运行

A 4 乙5 C 6

等等

我是数据阶段的新手,所以我尝试使用 inrownum 和分区公式,但我不知道如何使用它。

db2 datastage ibm-infosphere
1个回答
2
投票

您可以在 Db2 中使用 SEQUENCE(对象)而不是表 - Db2 中的序列用于生成唯一的数字。 当然,一张桌子也是可以的。

在 Datastage 中对表进行查找或使用 代理键生成器阶段,在其中引用 Db2 序列。 需要在人工列上定义查找,该列始终正确以丰富您的数据。 使用转换器通过为每行添加 +1 来修改检索到的计数器 如果您选择一个表或在 Db2 中执行更改序列来设置新值,则可以使用更新将其写入最后一行的表中。

请注意,在使用该值之前或再次写出该值之前应该有+1,以避免将上一次运行的最后一个数字用作下一次运行的第一个值。

© www.soinside.com 2019 - 2024. All rights reserved.