如下题 请经常写存储过程 懂数据库Oracle 或者你知道如何写都帮帮我
更新khexpinfo表的历史数据customer_id 的值,根据khexpInfo表的id与centerMaterialuseDetail表export_Uid关联,--centerMaterialuseDetail表的batchinfoUId与Batchinfo表的fuid关联,得到customer_id--用distinct关键字,如果结果记录数大于1则不需要处理,--否则就将khexinfo表的customer_id更新为所查出的customer_Id值
-- 先根据khexpinfo的id查询,若记录数大于1则不执行第2条更新语句,否则执行第2条语句更新语句select distinct b.customer_id from centermaterialusedetail c ,batchinfo b where c.export_uid='154461' and c.batchinfo_uid=b.fuid;
update khexpinfo set customer_id=(select distinct b.customer_id from centermaterialusedetail c ,batchinfo b where c.export_uid='154461' and c.batchinfo_uid=b.fuid) where id=154461;
我这样只能一条一条更新,谁会写歌存储过程 ,循环帮我更新,一条一条更新真的不现实啊
人气:161 ℃ 时间:2019-10-10 08:12:17
解答
create procedure test is
cursor custom_list is
select id from khexpinfo;
custom_dic custom_list%ROWTYPE;
my_custom_id in number(20);
begin
for custom_dic in custom_list loop
begin
select distinctb.customer_id into my_custom_id from centermaterialusedetail c ,batchinfo b where c.export_uid=custom_dic.id and c.batchinfo_uid=b.fuid;
update khexpinfo set customer_id=my_custom_id where id=custom_dic.id;
exception when others then
my_custom_id:=0;
end;
end loop;
commit;
end;
推荐
猜你喜欢
- 在密闭恒容容器中,进行下列反应:X(g)+3Y(g)=2Z(g),达到平衡状态后,其他条件不变,只增加X的量X的转化率为
- 等腰三角形ABCD的中位线EF的长是8,他的腰长DC垂直于BD角DBC等于30度,求梯形的周长
- 1.已知f(x)是偶函数,在区间[a,b]上位减函数(0
- 关于用高锰酸钾配制溶液
- △ABC中,∠A、∠B均为锐角,且|tanB−3|+(2sinA−3)2=0,试确定△ABC的形状.
- 求导y=(1+1/x)的x次方
- 学校图书室有108本连环画,按2:3:4的比例借给甲、乙、丙三个班,丙班比甲班多借多少本?
- 从个位数与十位数之和为奇数的两位数中任取一个,其个位数为0的概率是( ) A.49 B.13 C.29 D.19