求oracle存储过程,同时删除两张表中的id相同的数据

同时,求添加、修改的存储过程。要同时能操作两张表,id是关联。详细一点,谢谢

手上没有环境,大概说一下我的方法,方法一(不用游标,变量,需要中间表):
1.创建临时表(或者创建个表也可以,用一次删一次)即中间表。
2.取出两个表相同的ID记录,将ID插入中间表
3.对应中间表中的id,删险两表中的记录。
4.清除中间表

方法二(要用游标、变量):
1.建立游标,用游标取出两表相同ID记录,将ID放入变量。
2.通过Loop,根每一个ID的变量对到删除两表中的记录。

方法一,性能不好,但很简单。
方法二,性能稳性,要用到游标计算。
温馨提示:答案为网友推荐,仅供参考
第1个回答  2011-08-27
BEGIN
BEGIN
insert into #temp select T1.id from T1,T2 where T1.id=T2.id;
DELETE from T1 WHERE id IN (select id from #temp);
DELETE from T2 WHERE id IN (select id from #temp);
drop table #temp;
EXCEPTION
WHEN NO_DATA_FOUND THEN
DBMS_OUTPUT.PUT_LINE('Employee Number Not Found!');
END
COMMIT;
EXCEPTION
WHEN OTHERS THEN
ROLLBACK;
END;
/