plsql用for循環批量從一表取數修改另一表的過程


用update語句修改單個或固定的多個倒是問題不大,但大批量的對應修改就不好辦,需要用循環修改。

前提:表jxcgoodslist_dayj中的lb4m的名稱不對,需要用goodscat中的catcname去修改,

           jxcgoodslist_dayj表中的字段 lb4與goodscat中的字段catcode一致。

於是用存儲過程來解決,比較方便,過程如下:

create or replace procedure p_updatelbm is      -- 創建修改類別名稱的過程
begin
  for i in (select catcode, catcname from goodscat where catcode like '____') loop    -- for循環取數,條件是catcode是4位數,取類別代碼與名稱
    update jxcgoodslist_dayj set lbm4 = i.catcname where lb4 = i.catcode;      -- update語句修改jxcgoodslist_dayj表中的lbm4字段,條件是類別代碼相等
    commit;        -- 自動提交
  end loop;       -- 循環結束
end p_updatelbm;

在命令窗口執行語句:

exec  p_updatelbm;

查詢結果正確。同樣的道理把lb8m和lb6m都進行了修改。

select * from jxcgoodslist_dayj

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM