통합시 타겟 테이블에 삽입하려는 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'
ETL Tools/Oracle Data Integrator