본문 바로가기

ETL Tools/Oracle Data Integrator

KM IKM Oracle Incremental Update For SUM 090501 수정본

통합시 타겟 테이블에 삽입하려는 Row가 있는 경우 Original IKM과 마찬가지로 Update를 실행하는데 

기존의 덮어쓰기 방법으로 Update를 실행하는 원 km과 다르게 

수정한 IKM은 

주키를 제외한 모든 컬럼들을 업데이트시 기존의 값에 더해주는 기능으로 만들었다.

##주키를 제외한 모든 컬럼은 number로 구성 되있어야 가능한 km이다.

참고 :

update <%=snpRef.getTable("L", "TARG_NAME", "A")%> T
set  (
 <%=snpRef.getColList("", "T.[COL_NAME] =T.[COL_NAME] + S.[COL_NAME]", ",\n\t", "", "((UPD AND (NOT UK) AND (NOT TRG)) AND REW)")%>
 <%=snpRef.getColList(",", "T.[COL_NAME]", ",\n\t", "", "((UPD AND (NOT UK) AND TRG) AND REW)")%>
 ) =   (
  select <%=snpRef.getColList("", "S.[COL_NAME]+T.[COL_NAME]", ",\n\t\t\t", "", "((UPD AND (NOT UK) AND (NOT TRG)) AND REW)")%>
   <%=snpRef.getColList(",", "[EXPRESSION]", ",\n\t\t\t", "", "((UPD AND (NOT UK) AND TRG) AND REW)")%>
  from <%=snpRef.getTable("L", "INT_NAME", "W")%> S
  where <%=snpRef.getColList("", "T.[COL_NAME] =S.[COL_NAME]", "\n\t\tand\t", "", "UK")%>
       )
where (<%=snpRef.getColList("", "[COL_NAME]", ", ", "", "UK")%>)
 in (
  select <%=snpRef.getColList("", "[COL_NAME]", ",\n\t\t\t", "", "UK")%>
  from <%=snpRef.getTable("L", "INT_NAME", "W")%>
  where IND_UPDATE = 'U'