日期:2014-05-17  浏览次数:20833 次

求问一个简单的数据插入存储过程
A、B表。
A: a_id, b_id
B: b_id, a_id

A表中缺少b_id,而B表数据全

现在需求是这样的,根据B表中的a_id来补全A表中的b_id

刚开始学没什么思路,谢谢大家了!

------解决方案--------------------
如果a_id和b_id是一对一的那么:
update a set b_id=(select b_id from b where b.a_id=a.a_id)
------解决方案--------------------
create or replace procedure P_CHARU is
begin
  
FOR REC IN (select b_id from b,a where b.a_id=a.a_id) LOOP

UPDATE a SET a.a_id=rec.b_id


END LOOP;
COMMIT;
end P_CHARU;
------解决方案--------------------
oracle存储过程
  1 CREATE OR REPLACE PROCEDURE 存储过程名
  2 IS
  3 BEGIN
  4 NULL;
  5 END;
 
行1:
  CREATE OR REPLACE PROCEDURE 是一个SQL语句通知Oracle数据库去创建一个叫做skeleton存储过程, 如果存在就覆盖它;
行2:
  IS关键词表明后面将跟随一个PL/SQL体。
行3:
  BEGIN关键词表明PL/SQL体的开始。
行4:
  NULL PL/SQL语句表明什么事都不做,这句不能删去,因为PL/SQL体中至少需要有一句;
行5:
  END关键词表明PL/SQL体的结束