任何人都可以告诉我,当其中一个列值为空时,如何通过组合两列来创建唯一键?
所以我们说有2个col:-col1和col2。我必须在这两列上定义一个复合键,如何处理这些列中的任何空值?
有没有办法随机为任何空列生成值,而不是在informatica中创建唯一键?
答案 0 :(得分:0)
将持久序列附加到复合键(col1 + col2 + seq_no)。对于每个运行增量,键和存储它的最大值然后在它的后续运行中使用max + 1。对于增量序列,您可以使用序列生成器或使用表达式变量计算值。
答案 1 :(得分:0)
您可以使用DECODE处理COL1和COL2中的NULL值。
使用序列生成器填充SEQ_VALUE端口中的值 从1001开始并递增1,
KEY_COL1 = DECODE(COL1,NULL,0,COL1)
--assigning to a variable port KEY_COL1
KEY_COL2 = DEOCDE(COL2,NULL,0,col2)
--assigning to a variable port KEY_COL2
然后生成复合键
COMPOSITE_KEY = (SEQ_VALUE || KEY_COL1 || KEY_COL2 )
工作原理: