<insert id="mergeInfo" parameterType="xxx.xxx.xxx">
merge into table1 t1
<trim prefix="using ( select " suffix=" from dual ) t2" suffixOverrides=",">
<if test="VC_ORG_ID != null>
#{VC_ORG_ID,jdbcType=VARCHAR} VC_ORG_ID,
</if>
<if test="VC_PRICE!= null>
#{VC_PRICE,jdbcType=NUMERIC} VC_PRICE,
</if>
</trim>
ON (
<trim prefixOverrides="AND">
<if test="VC_ORG_ID != null>
t1.VC_ORG_ID = t2.VC_ORG_ID
</if>
</trim>
)
WHEN MATCHED THEN
UPDATE SET
<trim suffixOverrides=",">
<if test="VC_PRICE!= null>
t1.VC_PRICE = #{VC_PRICE,jdbcType=NUMERIC},
</if>
</trim>
WHEN NOT MATCHED THEN
<trim prefix="insert (" suffix=")" suffixOverrides=",">
<if test="VC_ORG_ID != null>
VC_ORG_ID,
</if>
<if test="VC_PRICE!= null>
VC_PRICE,
</if>
</trim>
<trim prefix="values (" suffix=")" suffixOverrides=",">
<if test="VC_ORG_ID != null>
#{VC_ORG_ID ,jdbcType=VARCHAR},
</if>
<if test="VC_PRICE!= null>
#{VC_PRICE,jdbcType=NUMERIC},
</if>
</trim>
</insert>
Oracle merge into 的用法详解【整理】
动态 SQL