首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >如何在Informatica中实现同一映射中的插入、更新和删除

如何在Informatica中实现同一映射中的插入、更新和删除
EN

Stack Overflow用户
提问于 2022-03-24 05:37:38
回答 1查看 451关注 0票数 1

我们需要在Informatica中的同一映射下实现Insert、Update和delete逻辑。源表结构和目标表结构相同,没有区别。目标中没有主键,我们在Informatica映射中将PERSON_KEY定义为更新记录的主键,我目前正在使用目标表上的查看和比较记录和路由器转换,下面的逻辑用于插入和更新。我亦提供了表格的结构,以供参考。

注:来源和目标来自不同的数据库

插入: ISNULL(LKP_PERSON_KEY)

更新: IIF(PERSON_KEY=LKP_PERSON_KEY,真,假)

代码语言:javascript
复制
PERSON_KEY      NUMBER(7, 0) ,
SOURCE_CD       VARCHAR2(16 CHAR) ,
SOURCE_INSTANCE NUMBER(2, 0) ,
TYPE_CD         VARCHAR2(32 BYTE) ,
TYPE_INSTANCE   NUMBER(2, 0) ,
VALUE           VARCHAR2(255 CHAR) ,
VALUE_TEXT      VARCHAR2(255 CHAR) ,
UPDATE_SOURCE   VARCHAR2(32 CHAR) ,
UPDATE_ACCOUNT  VARCHAR2(32 CHAR) ,
UPDATE_DATETIME DATE ,
UPDATE_SUNETID  VARCHAR2(64 CHAR) ,
UPDATE_COMMENT  VARCHAR2(255 CHAR)
EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2022-03-24 09:11:06

使用update strategy

确保PERSON_KEY在目标设计器中被定义为PK。

然后在映射中,在目标之前添加表达式转换。输入所有数据列和PERSON_KEY、LKP_PERSON_KEY列。创建一个具有以下逻辑的列。我假设,如果上述任何一个条件都不符合,删除数据。

代码语言:javascript
复制
out_insert_update_flag = 
IIF(ISNULL(LKP_PERSON_KEY), 'INSERT',IIF(PERSON_KEY=LKP_PERSON_KEY,'UPDATE','DELETE')
)

然后在表达式转换和目标之间添加更新策略。拉入所有必需的列和out_insert_update_flag。创造出这样的逻辑-

代码语言:javascript
复制
IIF(out_insert_update_flag ='INSERT', DD_INSERT, IIF(out_insert_update_flag='UPDATE', DD_UPDATE, DD_DELETE
)) 

然后将所有必需的列添加到目标。

在会话中,请将加载策略设置为data driven

映射应该像-

代码语言:javascript
复制
.... --> EXP-->UPD-->TGT
票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/71597515

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档