在IBM datastage中生成序列号



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

  1. 从seq跟踪表中获取初始值

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

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

例子

跟踪表初始值:1

存储的数据应该是

1B 2C 3

3现在将存储在跟踪表中,所以初始值现在是3

下一个作业运行

4B 5C 6

等等

我是新来的datastage,所以我试过使用inrownum和分区公式,但我不知道如何使用这个。

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

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

注意,在处理该值之前,或者在再次写入该值之前,应该有一个+1,以避免使用前一次运行的最后一个数字作为下一次运行的第一个值。

最新更新