在谷歌或通过搜索这个网站找不到类似的东西,所以我想我会问。
我要做的是更新名为Ent_Name的列中的全局临时表(名为GTT)行,其中包含来自表MN_Xref中名为Modified_Name的列中的行,其中OG_Name(也来自MN_Xref)= GTT.Ent_Name。如果没有与Ent_Name匹配的OG_Name,则不应更新Ent_Name。此时GTT已经填充。怎么可以这样做?
如果需要,我可以提供更多信息。谢谢!
答案 0 :(得分:0)
对于这种情况,MERGE将是一个很好的选择。希望在片段下方有所帮助。
MERGE INTO GTT USING MN_REF
ON ( gtt.ENT_NAME = MN_REF.OG_NM)
WHEN MATCHED THEN
UPDATE SET
ENT_NAME = MN_REF.MODIFIED_NAME;
答案 1 :(得分:0)
这应该对你有用
UPDATE
(
select GTT.Ent_Name old_name
, MN_Xref.Modified_Name new_name
FROM GTT INNER JOIN MN_Xref ON (GTT.Ent_Name = MN_Xref.OG_Name)
)
SET old_name = new_name;
答案 2 :(得分:0)
如果我正确地解决了你的问题,这应该解决它
declare
cursor c is
select * from MN_Xref;
begin
for i in c loop
update GTT g
set g.Ent_Name = i.Modified_Name
where g.Ent_Name = i.OG_Name;
commit;
end loop;
end;