小编Cha*_*les的帖子

Oracle - 如何使用merge根据其他表和列中的值更新列

我想根据与其他列和其他表的值比较更新closed_date列中的值.我用Oracle合并到声明中.但它给了我一个错误:

错误:ORA-00969:缺少ON关键字

我不确定出了什么问题.我想念什么吗?以下是我的脚本:

MERGE INTO PR_DMN dmn
USING (select alg.PR_DMN_ID, alg.PR_ACTIVITY_ID, alg.ACTIVITY_TS from PR_ACTIVITY_LOG) alg
ON dmn.PR_DMN_ID = alg.PR_DMN_ID
-- update
WHEN MATCHED THEN
UPDATE SET dmn.CLOSED_DATE =
    (CASE 
        WHEN alg.PR_ACTIVITY_ID IN ('10009', '10010', '10011', '10013') THEN alg.ACTIVITY_TS
        WHEN alg.PR_ACTIVITY_ID = '10005' AND dmn.CONT_RESP_TS <= dmn.CONT_RESP_DUE_TS THEN dmn.CONT_RESP_TS 
        WHEN alg.PR_ACTIVITY_ID = '10008' AND dmn.CORR_RESP_TS <= dmn.CORR_RESP_DUE_TS THEN dmn.CORR_RESP_TS
        ELSE dmn.CLOSED_DATE 
    END)
Run Code Online (Sandbox Code Playgroud)

sql oracle

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

标签 统计

oracle ×1

sql ×1