看了一下 merge into 往往用在两个表比较数据的时候。
我这个是一条一条的数据存入数据库。还有因为表名不确定,用的是动态SQL   这两个问题merge into 能解决吗?  谢LS 2位了

解决方案 »

  1.   


    merge into:仅需要一次全表扫描就完成了全部工作,执行效率要高于INSERT+UPDATE
    语法:
    MERGE [INTO [schema .] table [t_alias] 
    USING [schema .] { table | view | subquery } [t_alias] 
    ON ( condition ) 
    WHEN MATCHED THEN merge_update_clause 
    WHEN NOT MATCHED THEN merge_insert_clause;例子:
    merge into test_a a         --test表是需要更新的表
    using test_b b              -- 关联表
    on (a.id=b.id)              --关联条件
    when matched then           --匹配关联条件,作更新处理
    update set a.name = b.name+1 
    when not matched then       --不匹配关联条件,作插入处理。
    insert values( b.id, b.name);一条条插入这个也是很实用的,你的是动态sql可以用execute immediate sql using ...
    这样可以避免每次都需要解析你的语句,提高执行的速度。
      

  2.   

    merge into,有则更新,无则插入。你可以看看其具体语法。