MERGE INTO A1.TRG_TABLE TRG$ USING ( SELECT SRCT_ID AS TRGT_ID ,SRCT_NAME AS TRGT_NAME ,SRCT_DESC AS TRGT_DESC FROM SRC_TABLE) SRC$ ON( TRG$.TRGT_ID=SRC$.TRGT_ID ) WHEN MATCHED THEN UPDATE SET TRG$.TRGT_NAME=SRC$.TRGT_NAME ,TRG$.TRGT_DESC=SRC$.TRGT_DESC WHERE --update when (TRG$.TRGT_NAME is null and SRC$.TRGT_NAME is not null) or (TRG$.TRGT_NAME is not null and SRC$.TRGT_NAME is null) or TRG$.TRGT_NAME!=SRC$.TRGT_NAME or (TRG$.TRGT_DESC is null and SRC$.TRGT_DESC is not null) or (TRG$.TRGT_DESC is not null and SRC$.TRGT_DESC is null) or TRG$.TRGT_DESC!=SRC$.TRGT_DESC WHEN NOT MATCHED THEN INSERT( TRG$.TRGT_KEY ,TRG$.TRGT_ID ,TRG$.TRGT_NAME ,TRG$.TRGT_DESC )VALUES( SEQ_TRG_TABLE.NEXTVAL ,SRC$.TRGT_ID ,SRC$.TRGT_NAME ,SRC$.TRGT_DESC );