日期:2014-05-16 浏览次数:20560 次
自从版本9i之后,对于“有则更新,无则插入”有了一个新的用法,不需要再执行2次SQL了。 
MERGE INTO本来应该是用来合并表的,不过因为其特性,根据用途不同可以用在以下场合: 
1.合并表 
2.外部数据插入更新 
3.用JOIN表更新 
各种情况下的 
1.合并表 
把表格T2的数据合并到表格T1里,根据结合条件,如果存在则更新,不存在则插入
 
MERGE INTO T1
USING T1 ON(
  T1.user_id = T2.user_id
)
WHEN MATCHED THEN
  UPDATE SET
         T1.user_nm = T2.user_nm
WHEN NOT MATCHED THEN
  INSERT 
     (user_id,user_nm)
  VALUES
     (T2.user_id,T2.user_nm)
 
2.外部数据插入更新 
根据外部传进来的参数,如果存在的话,用给定的参数更新,如果不存在则插入