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