oracle 中 merge INTO 语法的使用

语法格式:

  merge into [target-table] A 

  using [source-table sql] B

    on ([conditional expression] and [...]...)

    when matched then -- 当on中的条件匹配时

       [update sql] -- 执行操作 更新或删除等

    when not matched then -- 当on中的条件不匹配时

       [insert sql] -- 执行操作 新增等

语法解释:

  判断B表和A表是否满足on中的条件,

  如果满足,则用B表去更新A表或其他操作;

  如果不满足,则讲B表数据插入A表。

语法实例:

  merge INTO t_yunpacs_diag_config t using ( SELECT '22222222' hosId FROM dual ) t2 ON ( t.hospital_id = t2.hosId ) 

  WHEN matched THEN
    UPDATE
    SET t.MODIFIER = '3038',
    t.MODIFY_TIME = '2020-12-09 15:44:45.193'
  WHEN NOT matched THEN
    INSERT ( t.HOSPITAL_ID, t.SIGN_FLAG, t.DUB_SIGN_FLAG, t.TASKTYPE, t.CREATOR, t.CREATE_TIME )
    VALUES
    ( t2.hosId, '0', '0', '1', '3038', '2020-12-09 15:44:45.193' )

posted @ 2020-12-09 16:40  朝暮的小知识  阅读(167)  评论(0编辑  收藏  举报