merge into tab1 a
using tab2 b
on (a.aid=b.aid and a.bid=b.bid)
when not matched then
  insert values (b.aid,b.bid); 
可以帮我解释下tab2表是做什么的吗?tab2表可以不可以是在另一个页面传过来的值呢,而不是表里的

解决方案 »

  1.   


    --tab1 修改目标表
    --tab2 数据来源表,此表可以为视图,子查询,页面传过来也没关系,只要你将他写成表的形式就ok了
      

  2.   


    --Merge into 详细介绍
    --MERGE语句是用来合并UPDATE和INSERT语句。
    --通过MERGE语句,根据一张表或子查询的连接条件对另外一张表进行查询,
    --连接条件匹配上的进行UPDATE,无法匹配的执行INSERT。
    --这个语法仅需要一次全表扫描就完成了全部工作,执行效率要高于INSERT+UPDATE。--你页面传来的是什么样的数据?可以使用
    select 'a1' a,'b1' b from dual 
    union all
    select 'a2' a,'b2' b from dual
    union all
    select 'a3' a,'b3' b from dual
    ...这样的形式组成表tab2
      

  3.   

    这个方法可以实现tab2表里没有的,而tab1表里有的数据删除吗?
      

  4.   

    在merge操作中不能删除记录。这个方法可以实现tab2表里没有的,而tab1表里有的数据删除吗? 
    --这个重新写个delete语句,很容易实现的
      

  5.   

    tab2是来源表,也可以是子查询,来自于界面也没有问题,只要是表的形式就可以