2015-05-04 32 views
0

任何人都可以告訴我如何創建唯一鍵通過組合兩列時,其中一列值可能爲空?創建一個複合主鍵,而其中一列可能或可能不爲空

所以讓我們說有2個col:-col1和col2。我必須在這兩列上定義一個組合鍵,以及如何處理這些列中的空值?

有沒有什麼辦法可以爲任何空列隨機生成一個值,然後在informatica中創建一個唯一的鍵?

+0

如何製作其他r列計算出一個?或者有第三列將是前兩個計算並在第三個列上創建唯一鍵(如果您不能修改col2定義)。 – Maciejg

回答

0

將持續序列附加到組合鍵(col1 + col2 + seq_no)。對於每個運行增量的關鍵和存儲它是最大的,然後在它的後續運行使用最大+ 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) 

它是如何工作的:

enter image description here

相關問題