2012-08-22 3 views
1

인포매티카 디자이너에 삽입 한 다음 삭제 8.1.1취급은 내가 인포매티카 PowerCenter는 디자이너 일하고

내가 가진

PORT_ID 
ISSUE_ID 
MKT_VAL 

내가에서 데이터를 동기화 할 필요가 세 개의 열이있는 소스 테이블 내 소스 테이블을 다른 데이터베이스의 동일한 세 테이블이 들어있는 목표 테이블로 이동하십시오.

이는 1입니다 : N 관계가이 데이터를 동기화하는 동안

ISSUE_ID 포트 ID 사이 , 내가 INSERT, 이유 존재 다음에 DELETE를해야 할, ISSUE_ID의 수는 포트 ID에 매핑 할 수 있습니다 변화. 소스

PORT_ID ISSUE_ID 
1   A 
1   B 
1   C 

데이터가 변경됩니다 : 이제 intially 그런 말을하자, 데이터 소스 및 대상이 같았다이 때문에

PORT_ID ISSUE_ID 
1   A 
1   B 
1   D 

, 내 동기 중에, 내가 먼저 삭제해야 모든 행을 PORT_ID = 1로 매핑 한 다음 들어오는 레코드를 삽입하십시오.

매핑 디자이너에서이 작업을 수행하는 방법을 알 수 없습니다. 누군가가 나에게 약간의 의견을 줄 수 있습니까?

답변

1

가장 일반적인 방법은 사전 쿼리를 사용하는 것입니다. 포트 ID와 ISSUE_ID 테이블 내에서 고유 경우 사용할 수 있습니다 ....

delete from tgt_table 
where (port_id, issue_id) 
    not in (select port_id, issue_id 
      from src_table 
     ); 
commit; 

두 번째 방법 :

이 두 열이 당신의 매핑의 핵심으로 추가 할 수 있다면, 당신이 할 수있는 "확인 "대상 데이터를"삽입, 업데이트, 삭제 "(모두 3 개)로 처리하여 대상 데이터가 원본 데이터와 동일한 지 확인합니다. 그러나 대부분의 경우 비즈니스 규칙은 이보다 복잡하기 때문에이 기능은 거의 사용되지 않습니다.

다른 일반적인 구현은 대상 테이블에 대한 조회를 기반으로 "삭제할 행 표시"입니다.

Source -> Lookup (target_table) -> 
    exp (flag to see if the value exists) -> 
    mark for delete -> 
    Delete using update_strategy_transformation 
+0

언급 한 "두 번째 방법"에 대해 조금 더 자세히 설명해 주실 수 있습니까? – Incognito

0

다음을 수행하는 간단한 저장된 프로 시저 쓰기 :

1) ((포트 ID, ISSUE_ID 곳 인 Rajesh에 의해 주어) (tgt_table 에서 삭제) 하지에이 (포트 ID를 선택 문을 삭제 ISSUE_ID을) src_table 에서 ; 은 커밋 )를

2) 삽입 명령문

,
Insert into tgt_table where not in src_table 
commit; 

3) 맵핑에서 소스 및 목표로 dummy를 사용하고 STORED_PROCEDURE_TRANSFORMATION을 사용하여 저장된 proc을 호출하십시오.

0

원본 테이블에서 동적 조회를 만들 수 있습니다.동적 조회를 만들기 위해 할 수있는 일

,

-> 조회 속성으로 이동

->

동적 조회 캐시 상자를 선택 -> 다음 삽입을 확인 그렇지 않으면 업데이트 상자.

이렇게하면 새 포트 NewLookupRow가 포트 탭에 나타납니다. 당신은 기록이 다음 해당 값

0 삽입 또는 업데이트가 있는지 확인하려면이 포트를 사용할 수 있습니다 당신은 이제

1

이 삽입된다 변화를 갱신

됩니다 없다 그에 따라 목표를 업데이트 할 수 있습니다.

희망이 도움이 .. ..

환호.

+0

답변보다 댓글에 더 가깝습니다. –

+0

나는 그것이 문제를 해결할 것이라고 생각한다. :) – Shirish

+0

이제이 글이 대답처럼 보이고, 편집 한 후에, 어떻게하면 더 좋고 간단하게 만들 수 있는지 배우려고 노력한다. –

0
내가 요구 사항이 소스에 DUPS을 가지고하지 않는 한 우리가 여기에 동적 조회를 필요가 있다고 생각하지 말아

..

왜 당신이 정기적으로 조회를하고 업데이트 전략 대신 삭제 및 삽입을 사용하여 레코드를 업데이트 해달라고?

+0

이것은 주석처럼 보이며 질문에 대한 대답이 아닙니다. – HDJEMAI