当前位置: 代码迷 >> Oracle开发 >> 求个SQL脚本,请各位大侠帮忙~解决方案
  详细解决方案

求个SQL脚本,请各位大侠帮忙~解决方案

热度:24   发布时间:2016-04-24 07:35:17.0
求个SQL脚本,请各位大侠帮忙~
前提:  
  有2张表,A1、A2,
  A1 中有 fields1,fields2 两个字段,
  A2 中有 num,fields1,fields2 三个字段;
  A2 表对A1的外键是 fields2 ;
  A2表对A1表为多对1的映射。

问题描述:

  先需要将A2表的字段 fields1 更新为 A1 表中的fields1;A1、A2表中的记录条数未知。
例如:A1表中有如下数据:
fields1 fields2 
001 abc
002 bcd
014 cde
...
A2表中有如下数据:
num fields1 fields2 
1 0 abc
2 1 abc
3 1 abc
4 0 bcd
5 0 bcd
6 0 cde 
.....
A2表更新结果如下:
num fields1 fields2 
1 001 abc
2 001 abc
3 001 abc
4 002 bcd
5 002 bcd
6 014 cde 

PS:谢谢各位大侠啦
   




------解决方案--------------------
update A2 t set t.fields1 =A1.fields1 WHERE t.fields2 =(SELECT fields2 FROM A1)
------解决方案--------------------
SQL code
create or replace procedure update_Job asbegin  for varCode in (select a.fields1,a.fields2 from A1 a) loop      for varStr in (select a.num,a.fields1,a.fields2 from A2 a        where a.fields2 = varCode.Fields2 and a.fields1 != varCode.Fields1) loop        update A2 t           set t.fields1 = varCode.Fields1         where t.num = varStr.Num;        commit;      end loop;  end loop;end update_Job;
  相关解决方案