【发布时间】:2017-08-02 15:11:07
【问题描述】:
此更新语句在 SQL Server 上完美运行,但在 Oracle 上却不行。
UPDATE wfu
set klient_id_crma= K.KLIENT_PROD_ID
, umowa_id_crma= u.umowa_id
from wh_ods.umowy u
join WNIOSKI_umowy wfu
on u.NUMER_REFERENCYJNY = wfu.numer
JOIN WH_ODS.KLIENCI K
ON U.KLIENT_ID= K.KLIENT_ID
在 Oracle 上使用少量联接进行更新的最简单方法是什么?
该方法返回错误:
UPDATE
(SELECT wfu.klient_id_crma as OLD, table2.KLIENT_PROD_ID as NEW
FROM nest_crma.WNIOSKI_umowy wfu
INNER JOIN
(SELECT u.numer_referencyjny,k.KLIENT_PROD_ID
from wh_ods.umowy u
JOIN WH_ODS.KLIENCI K
N U.KLIENT_ID= K.KLIENT_ID) table2
ON wfu.numer = table2.numer_referencyjny
) t
SET t.OLD = t.NEW
ORA-01779: 无法修改映射到非保留键的列 表
【问题讨论】:
-
路过式投票是怎么回事?如果他们在帖子中解释了他们发现错误或令人反感的内容,那么任何投反对票的人都会为社区做出更大的贡献。这个问题是相关的,提供了所有必要的细节,并且标签是完全正确的。什么鬼?
标签: sql-server oracle sql-update