MERGE 用法


  MERGE INTO SYS_USER_POS PS
  USING (SELECT U.USERID, M.ORG_ID, M.POS_ID
           FROM SYS_USER U
          INNER JOIN MID_SYS_USER_PMP_SYNC M ON U.ACCOUNT = M.ACCOUNT WHERE M.CHECK_STATUS = '0') INTEG
  ON (PS.USERID = INTEG.USERID)
  WHEN NOT MATCHED THEN
    INSERT
      (PS.USERPOSID, PS.POSID, PS.USERID, PS.ISPRIMARY, PS.ORGID, PS.ASSID)
    VALUES
      (UNIQUEIDUTIL_ID.NEXTVAL,
       INTEG.POS_ID,
       INTEG.USERID,
       1,
       INTEG.ORG_ID,
       0)
  WHEN MATCHED THEN
    UPDATE SET PS.POSID = INTEG.POS_ID, PS.ORGID = INTEG.ORG_ID;



    INSERT INTO SYS_BPM_USE_ROLE
      (ID,
       ROLEID,
       ROLENAME,
       USERID,
       ACCOUNT,
       FULLNAME,
       ORGID,
       ORGTYPE,
       AREAID,
       CATEGORYID,
       CREATETIME,
       BQ_ORGID)
      SELECT UNIQUEIDUTIL_ID.NEXTVAL AS ID,
             M.USERATTRID AS ROLEID,
             M.USERATTRNAME AS ROLENAME,
             N.USERID AS USERID,
             SU.ACCOUNT AS ACCOUNT,
             SU.FULLNAME AS FULLNAME,
             N.ORGID AS ORGID,
             M.ORGTYPE AS ORGTYPE,
             M.AREAID AS AREAID,
             M.CATEGORYID AS CATEGORYID,
             V_IDATE AS CREATETIME,
             (SELECT SO.ORG_ID
                FROM SYS_ORG_BPM SO
               WHERE SO.ORG_TYPE_X = V_IBQ
                 AND ROWNUM = 1
               START WITH SO.ORG_ID = O.ORG_ID
              CONNECT BY SO.ORG_ID = PRIOR SO.ORG_SUPID) AS BQ_ORGID
        FROM MID_SYS_BPM_USE_ROLE M
        LEFT JOIN (SELECT UR.ROLEID AS ROLEID,
                          UR.USERID AS USERID,
                          DECODE(URO.ORGID, NULL, UR.ORGID, URO.ORGID) ORGID
                     FROM SYS_USER_ROLE UR
                     LEFT JOIN SYS_USERROLE_ORG URO ON URO.USERROLEID =
                                                       UR.USERROLEID) N ON M.USERATTRID =
                                                                           N.ROLEID




  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值