相关疑难解决方法(0)

有人可以解释一下MERGE声明在Oracle中的作用吗?

我正在寻找一个明确的解释,MERGE说明Oracle 的声明真正做了什么.

这就是我所追求的:

MERGE INTO (target_table) t
USING (source_view) s
   ON (join condition)
 WHEN MATCHED THEN UPDATE SET col1 = val1 [, ...]
 WHEN NOT MATCHED THEN INSERT (col1 [, ...]) VALUES ( val1 [, ...])
Run Code Online (Sandbox Code Playgroud)
  • 进行什么样的连接?我认为这是全外联盟,对吗?
  • 关于WHEN MATCHED部分:当一行t匹配多行时会发生什么s
  • 关于这WHEN NOT MATCHED部分我认为它意味着"当一行s没有对应t "时.我对吗?

谢谢.

oracle implementation

12
推荐指数
1
解决办法
6094
查看次数

Oracle MERGE NOT MATCHED THEN UPDATE 可能吗?

当源表中不存在的目标表中存在记录时,我们希望将 IS_DEL 位设置为 1。

是否可以使用 WHEN NOT MATCHED 子句使用 MERGE 语句,但使其执行更新?

尝试这样做时,我收到“ORA-00905:缺少关键字”消息。

MERGE
INTO    AMEPSA.ENTERPRISE_LOCATION trg
USING   (
        SELECT C.LOCATION_KEY as LOCATION_KEY
        FROM AMEPSA.ENTERPRISE_LOCATION C
            INNER JOIN AMESTAGE.VW_LOCATION L ON C.REC_SRC_KEY_CD = L.LOCATION_ID    
        WHERE C.CURR_REC_IND = 'Y'
        ) src
ON      (trg.LOCATION_KEY = src.LOCATION_KEY)
WHEN NOT MATCHED THEN UPDATE
    SET trg.IS_DEL = 1
Run Code Online (Sandbox Code Playgroud)

“WHEN NOT MATCH”子句是否只支持“THEN INSERT”?

sql oracle

2
推荐指数
1
解决办法
2万
查看次数

标签 统计

oracle ×2

implementation ×1

sql ×1