我有一个生成序列号的请求,应该按以下方式完成
从 seq 跟踪表中检索初始值
使用该值作为序列号,并在更新时将其添加为另一个并行进程中的列。
作业完成后,应在跟踪器表中更新最大值,以便在下一次运行中从该数字开始
示例
跟踪表中的初始值:1
存储的数据应为
A 1 乙2 C 3
3 现在将被存储在 tracker 表中,所以现在初始值为 3
下一个作业运行
A 4 乙5 C 6
等等
我是数据阶段的新手,所以我尝试使用 inrownum 和分区公式,但我不知道如何使用它。
您可以在 Db2 中使用 SEQUENCE(对象)而不是表 - Db2 中的序列用于生成唯一的数字。 当然,一张桌子也是可以的。
在 Datastage 中对表进行查找或使用 代理键生成器阶段,在其中引用 Db2 序列。 需要在人工列上定义查找,该列始终正确以丰富您的数据。 使用转换器通过为每行添加 +1 来修改检索到的计数器 如果您选择一个表或在 Db2 中执行更改序列来设置新值,则可以使用更新将其写入最后一行的表中。
请注意,在使用该值之前或再次写出该值之前应该有+1,以避免将上一次运行的最后一个数字用作下一次运行的第一个值。