用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