用oracle存储过程将三张表的数据查出插入另三张表

有三张表,表A,表B,表C,要将这三张表的数据分别查出来,放到表A1,表B1,表C1和表A2,表B2,表C2中。表A,表B,表C的数据是实时更新的。每五分钟全部换一次。表... 有三张表,表A,表B,表C,要将这三张表的数据分别查出来,放到表A1,表B1,表C1和表A2,表B2,表C2中。
表A,表B,表C的数据是实时更新的。每五分钟全部换一次。
表A1,表B1,表C1 和 表A,表B,表C同步。也就是表A1,表B1,表C1在插入数据的时候要清空数据。
表C1和表A2,表B2,表C2 存储 表A,表B,表C出现过的所有数据。也就是把表A,表B,表C 查出的数据直接插入C1和表A2,表B2,表C2 就可以 了。

这个存储过程怎么写?
展开
 我来答
larkin8086
推荐于2016-05-18
知道答主
回答量:6
采纳率:0%
帮助的人:9.6万
展开全部
PROCEDURE P1 IS
BEGIN
DELETE FROM A1;
DELETE FROM B1;
DELETE FROM C1;
INSERT INTO A1 SELECT * FROM A;
INSERT INTO B1 SELECT * FROM B;
INSERT INTO C1 SELECT * FROM C;
INSERT INTO A2 SELECT * FROM A;
INSERT INTO B2 SELECT * FROM B;
INSERT INTO C2 SELECT * FROM C;
COMMIT;
END;

人后在job中5分钟调用一次。

或使用trigger,3个表类似的3个trigger:
create or replace trigger A_TRG
after insert or update or delete on A
for each row
begin
IF inserting THEN
insert into A1(KEY_COL,COL1,COL3)
VALUES(:NEW.KEY_COL,:NEW.col1,:NEW.col2,:NEW.col3);
insert into A2(KEY_COL,COL1,COL3)
VALUES(:NEW.KEY_COL,:NEW.col1,:NEW.col2,:NEW.col3);
elsif updating then
UPDATE A1 SET COL1=:NEW.col1,
A1.COL2=:NEW.col2,
A1.COL3=:NEW.col3)
WHERE KEY_COL=:NEW.KEY_COL,
elsif deleting then
DELETE FROM A1 WHERE KEY_COL=:NEW.KEY_COL;
END IF;
end A_TRG;
追问
谢谢啦,刚才写错表了。
本回答被提问者采纳
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式