PLSQL:MERGE的用法

MERGE INTO fzq1 aa --fzq1表是需要更新的表
USING fzq bb -- 关联表
ON (aa.id = bb.id) --关联条件
WHEN MATCHED THEN --匹配关联条件,作更新处理
  UPDATE
     SET aa.chengji = bb.chengji + 1, aa.name = bb.name --此处只是说明可以同时更新多个字段。  
WHEN NOT MATCHED THEN --不匹配关联条件,作插入处理。如果只是作更新,下面的语句可以省略。
  INSERT VALUES (bb.id, bb.name, bb.sex, bb.kecheng, bb.chengji);

以上为用法,下面来一个实例

MERGE INTO cux.test_t1 t --需要更新或插入的表
USING cux_ap_terms_lines ctl -- 关联表
ON (t.t_id = ctl.line_id) --关联条件
WHEN MATCHED THEN --匹配关联条件,则作更新处理
  UPDATE SET t.cloum1 = ctl.header_id, t.cloum2 = ctl.term_id
WHEN NOT MATCHED THEN --不匹配关联条件,则作插入处理。如果只是作更新,则下面的语句可以省略。
  INSERT VALUES (ctl.line_id, ctl.header_id, ctl.term_id);
SELECT * FROM cux.test_t1;

 

posted @ 2012-12-26 17:16  carlo-z  阅读(2365)  评论(0编辑  收藏  举报