我正在尝试创建一个UPSERT查询,只有当不存在具有相同CDN的元组时,才会在TEST
表中插入元组,如果发生这种情况,则执行UPDATE
。下面是一个片段,其中有许多尝试:
MERGE INTO TEST l
USING (select :cn as cn from dual) ct
ON (ct.cn = l.CN)
WHEN MATCHED THEN
UPDATE SET l.CN = :cn, l.LIVE_ENA = :liv_en, l.DATE_LIVE_UPDATE = :dtp
WHEN NOT MATCHED THEN
INSERT (CN, LIVE_ENA, DATE_LIVE_UPDATE)
VALUES (:cn, :liv_en, :dtp);
但我总是犯同样的错误:
ORA-38104:无法更新ON子句中引用的列:“CT”.“CN”
1条答案
按热度按时间roqulrg31#
错误提示您不能更新
ON
子句中涉及的列,因此-删除它。但是,由于我们不知道您实际使用的值或表描述,因此可能会出现其他错误。