[英]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.