如何配置ODI以自动增加行以进行IKM增量更新

时间:2018-11-22 15:30:22

标签: oracle oracle-data-integrator

我对“尺寸”和“ IKM:增量更新”的自动增量ID有疑问。

我的源表只有一列:SUPPLIER_NAME。它有23行带有供应商名称。

我的目标表有两列:SUPPLIER_ID,SUPPLIER_NAME

接下来,我要在SUPPLIER_ID上为每个新行创建自动增量ID,并使用IKM:增量更新-某人添加新供应商,我只想要更新表(添加新行),并为此供应商添加新ID(自动增量的下一个值)

我该怎么做?

我在数据库上创建序列,例如:

Create sequence autoinc start with 1  
increment by 1  
minvalue 1  
maxvalue 1000000;  

在ODI中,我创建序列: AutoIncrementDIm->增量:1, 本机序列-本机序列名称:autoinc

接下来,我创建ODI映射:

源表(具有一个列)映射到目标表(具有ID和NAME)。

将供应商名称映射到供应商名称

对于ID,我使用:#NFS_HD.AutoIncrementDim_NEXTVAL

在逻辑部分中,我设置了集成类型:增量更新 在物理部分中,我设置了IKM:IKM Oracle Merge

对于我的第一次跑步,一切正常。每个供应商的自动增量都从1增加到23。

但是当我在源表中有带有新供应商名称的新行并运行映射时,会得到类似的信息:

Results

新行(具有新的供应商)具有47个ID ...我认为s是因为每行都在运行序列。

我必须更改以更正还是什么是更好的解决方案?

1 个答案:

答案 0 :(得分:0)

在逻辑映射上,单击您的SUPPLIER_ID目标属性。在“目标”选项卡的属性窗格中,取消选择“更新”复选框。这意味着该属性将不会在更新查询中使用。

enter image description here

还要确保将SUPPLIER_NAME属性设置为键,以便IKM使用它来知道何时应该进行插入或更新。