insert into CU_MEMBER_EMPTY_DETAIL (PK_ID, PK_MEMBER_EMPTY, MEMBER_CODE, MEMBER_NAME, PHONE, PARENT_CODE, PK_COUNTRY, PK_SETTLE_COUNTRY, POINT_STATUS, CONTENT_ABSTRACT, PK_CREATOR) select tmp.* from ( select #{item.pkId} PK_ID, #{item.pkMemberEmpty} PK_MEMBER_EMPTY, #{item.memberCode} MEMBER_CODE, #{item.memberName} MEMBER_NAME, #{item.phone} PHONE, #{item.parentCode} PARENT_CODE, #{item.pkCountry} PK_COUNTRY, #{item.pkSettleCountry} PK_SETTLE_COUNTRY, #{item.pointStatus} POINT_STATUS, #{item.contentAbstract} CONTENT_ABSTRACT, #{userId} PK_CREATOR from dual ) tmp merge into CU_MEMBER_EMPTY_DETAIL cmed using ( select #{item.pkId} pk_id, #{item.pkMemberEmpty} pk_member_empty, #{item.memberCode} member_code, #{item.memberName} member_name, #{item.phone} phone, #{item.parentCode} parent_code, #{item.pkRegisterGrade} pk_register_grade, #{item.registerAchieve} register_achieve, #{item.orderSource} order_source, #{item.pkCountry} pk_country, #{item.pkSettleCountry} pk_settle_country, #{item.pkAwards} pk_awards, #{item.backAmount} back_amount, #{item.pointStatus} point_status, #{item.settlementFlag} settlement_flag, #{item.settlementAchieve, jdbcType=NUMERIC} settlement_achieve, #{item.transferAchieve, jdbcType=NUMERIC} transfer_achieve, #{item.recName, jdbcType=VARCHAR} rec_name, #{item.recPhone, jdbcType=VARCHAR} rec_phone, #{item.recProvince, jdbcType=NUMERIC} rec_province, #{item.recCity, jdbcType=NUMERIC} rec_city, #{item.recCounty, jdbcType=NUMERIC} rec_county, #{item.recAddress, jdbcType=VARCHAR} rec_address, #{item.contentAbstract, jdbcType=VARCHAR} content_abstract, #{item.productFlag} product_flag, #{item.orderType} order_type, #{item.autoFlag} auto_flag from dual ) tmp on (cmed.del_flag = 0 and tmp.pk_id = cmed.pk_id) WHEN MATCHED THEN update set cmed.member_code = tmp.member_code, cmed.member_name = tmp.member_name, cmed.phone = tmp.phone, cmed.parent_code = tmp.parent_code, cmed.pk_register_grade = tmp.pk_register_grade, cmed.register_achieve = tmp.register_achieve, cmed.order_source = tmp.order_source, cmed.pk_country = tmp.pk_country, cmed.pk_settle_country = tmp.pk_settle_country, cmed.pk_awards = tmp.pk_awards, cmed.back_amount = tmp.back_amount, cmed.point_status = tmp.point_status, cmed.settlement_flag = tmp.settlement_flag, cmed.settlement_achieve = nvl(tmp.settlement_achieve, 0), cmed.transfer_achieve = nvl(tmp.transfer_achieve, 0), cmed.rec_name = tmp.rec_name, cmed.rec_phone = tmp.rec_phone, cmed.rec_province = tmp.rec_province, cmed.rec_city = tmp.rec_city, cmed.rec_county = tmp.rec_county, cmed.rec_address = tmp.rec_address, cmed.content_abstract = tmp.content_abstract, cmed.product_flag = tmp.product_flag, cmed.order_type = tmp.order_type, cmed.pk_modified = #{userId}, cmed.auto_flag = tmp.auto_flag, cmed.modified_time = sysdate merge into CU_MEMBER_EMPTY_DETAIL cmed using ( select #{item.pkId} pk_id, #{item.pointStatus} point_status, #{item.contentAbstract} content_abstract from dual ) tmp on (tmp.pk_id = cmed.pk_id) WHEN MATCHED THEN update set cmed.point_status = tmp.point_status, cmed.content_abstract = tmp.content_abstract, cmed.PK_MODIFIED = #{userId}, cmed.MODIFIED_TIME = sysdate