繁体   English   中英

Oracle,合并语句不起作用

[英]Oracle, Merge statement not working

我的意图是避免尝试将同一记录插入数据库。 该语句不插入记录。 选择中引用的记录尚不存在,因此应插入。 任何想法,我要去哪里错了。

MERGE INTO XX0101.CAMPAIGN b
    USING (SELECT * FROM  XX0101.CAMPAIGN WHERE CAMPAIGN_ID=7 AND X_ID='0123' AND Y_ID='4567') a
    ON (a.CAMPAIGN_ID = b.CAMPAIGN_ID)
WHEN NOT MATCHED THEN
    INSERT (CAMPAIGN_ID, X_ID, Y_ID, ROW_LAST_UPDATE_TS, ROW_LAST_UPDATE_ID)
    VALUES (7, '0123', '4567', SYSDATE, 'ABC');

这听起来似乎不是MERGE的工作,而是简单的INSERT

  BEGIN
     INSERT INTO XX0101.CAMPAIGN 
          (CAMPAIGN_ID, X_ID, Y_ID, ROW_LAST_UPDATE_TS, ROW_LAST_UPDATE_ID)
         VALUES (7, '0123', '4567', SYSDATE, 'ABC');
  EXCEPTION
     WHEN DUP_VAL_ON_INDEX THEN
        NULL;
  END;
  /

假设您有一个PK或唯一索引。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM