【摘要】在MYSQL中,实现要实现在一张表中”更新一条信息,如果不存在则插入“,通常是用ON DUPLICATE KEY UPDATE实现的。举个例子,现在有个应用场景,在客户表(CUSTOMER)里添加一条数据,如果存在该客户(通过主键客户号和账号判断)则更新该客户的手机号(CUST_MOBILE)、购买次数(BUY_TIMES)和购买日期(BUY_DATE)。 客户表:CUSTOMER&#9; N...<br>在MYSQL中,实现要实现在一张表中”更新一条信息,如果不存在则插入“,通常是用ON DUPLICATE KEY UPDATE实现的。举个例子,现在有个应用场景,在客户表(CUSTOMER)里添加一条数据,如果存在该客户(通过主键客户号和账号判断)则更新该客户的手机号(CUST_MOBILE)、购买次数(BUY_TIMES)和购买日期(BUY_DATE)。<br>客户表:CUSTOMER<br>NAMECODEPRIMARY<br>客户号CUST_NO✔\ufe0f<br>客户账号CUST_ACCT✔\ufe0f<br>客户姓名CUST_NAME<br>客户手机号CUST_MOBILE<br>购买次数BUY_TIMES<br>购买日期BUY_DATE<br>使用MYSQL ON DUPLICATE KEY UPDATE实现<br>insert into CUSTOMER ( CUST_NO, CUST_ACCT, CUST_NAME, CUST_MOBILE, BUY_TIMES, BUY_DATE ) values( #{CUST_NO}, #{CUST_ACCT}, #{CUST_NAME}, #{CUST_MOBILE}, '1', ${BUY_DATE} ) ON DUPLICATE KEY UPDATE CUST_MOBILE=#{CUST_MOBILE}, BUY_TIMES=BUY_TIMES+1, BUY_DATE=#{_CURR_DATE}<br>那么在ORACLE中,如何使用语句实现类似MYSQL中 使用ON DUPLICATE KEY UPDATE 语句的效果呢,语句如下所示<br>merge into CUSTMOER t1 using (select #{CUST_NO} CUST_NO,#{CUST_ACCT} CUST_ACCT from dua