簡體   English   中英

比較不同的表后,PL / SQL更新多行

[英]PL/SQL Update multiple rows after comparing to different table

無法在Google上找到任何類似內容,也無法通過搜索該網站找到任何類似內容,所以我想問一下。

我想做的是使用MN_Xref表中名為Modified_Name的列(無論OG_Name(也來自MN_Xref))= GTT.Ent_Name的行,更新名為Ent_Name的列中的全局臨時表(名為GTT)的行。 如果沒有OG_Name與Ent_Name匹配,則不應更新Ent_Name。 此時,GTT已被填充。 怎么辦呢?

如果需要,我可以提供更多信息。 謝謝!

在這種情況下,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;

這應該為你工作

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;

如果我正確解決了您的問題,這應該可以解決

    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;

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM