create table GLOBAL_SUNOP_DW_TARGET.I$_CHANNEL_DIM ( CHANNEL_ID NUMBER(5) NULL, CHANNEL_DSC VARCHAR2(15) NULL, TOTAL_CHANNEL_ID NUMBER(5) NULL, TOTAL_CHANNEL_DSC VARCHAR2(15) NULL, IND_UPDATE CHAR(1) ) NOLOGGING insert /*+ APPEND */ into GLOBAL_SUNOP_DW_TARGET.I$_CHANNEL_DIM ( CHANNEL_ID, CHANNEL_DSC, TOTAL_CHANNEL_ID, TOTAL_CHANNEL_DSC, IND_UPDATE ) select C1_CHANNEL_ID, C2_CHANNEL_DSC, C3_TOTAL_CHANNEL_ID, C4_TOTAL_CHANNEL_DSC, 'I' IND_UPDATE from GLOBAL_SUNOP_DW_TARGET.C$_0CHANNEL_DIM where (1=1) minus select CHANNEL_ID, CHANNEL_DSC, TOTAL_CHANNEL_ID, TOTAL_CHANNEL_DSC, 'I' IND_UPDATE from GLOBAL_SUNOP_DW_TARGET.CHANNEL_DIM ANALYZE TABLE GLOBAL_SUNOP_DW_TARGET.I$_CHANNEL_DIM ESTIMATE STATISTICS delete from GLOBAL_SUNOP_DW_TARGET.I$_CHANNEL_DIM where IND_UPDATE = 'D' ... (lots of error checking SQL snipped...) create unique index GLOBAL_SUNOP_DW_TARGET.I$_CHANNEL_DIM_idx on GLOBAL_SUNOP_DW_TARGET.I$_CHANNEL_DIM (CHANNEL_ID) NOLOGGING update GLOBAL_SUNOP_DW_TARGET.I$_CHANNEL_DIM set IND_UPDATE = 'U' where (CHANNEL_ID) in ( select CHANNEL_ID from GLOBAL_SUNOP_DW_TARGET.CHANNEL_DIM ) update GLOBAL_SUNOP_DW_TARGET.CHANNEL_DIM T set ( T.CHANNEL_DSC, T.TOTAL_CHANNEL_ID, T.TOTAL_CHANNEL_DSC ) = ( select S.CHANNEL_DSC, S.TOTAL_CHANNEL_ID, S.TOTAL_CHANNEL_DSC from GLOBAL_SUNOP_DW_TARGET.I$_CHANNEL_DIM S where T.CHANNEL_ID =S.CHANNEL_ID ) where (CHANNEL_ID) in ( select CHANNEL_ID from GLOBAL_SUNOP_DW_TARGET.I$_CHANNEL_DIM where IND_UPDATE = 'U' ) insert into GLOBAL_SUNOP_DW_TARGET.CHANNEL_DIM ( CHANNEL_ID, CHANNEL_DSC, TOTAL_CHANNEL_ID, TOTAL_CHANNEL_DSC ) select CHANNEL_ID, CHANNEL_DSC, TOTAL_CHANNEL_ID, TOTAL_CHANNEL_DSC from GLOBAL_SUNOP_DW_TARGET.I$_CHANNEL_DIM where IND_UPDATE = 'I'