1、一个表AC2001插入到视图AC20VIEW(两个结构一样),AC2001有1.5亿数据
2、因AC2001数据量过大,会导致undo表空间撑爆。
怎么将AC2001的数据注入到AC20VIEW中?
个人想法是写一个存储过程,每插入100W提交一次,请问怎么写
oracle两个结构相同表和视图数据的插入
答案:2 悬赏:40 手机版
解决时间 2021-03-21 05:33
- 提问者网友:藍了天白赴美
- 2021-03-20 23:57
最佳答案
- 五星知识达人网友:傲气稳了全场
- 2021-03-21 01:08
DECLARE
i NUMBER := 1;
BEGIN
FOR rec IN (SELECt * FROM AC2001 ) LOOP
INSERT INTO AC20VIEW (col1,col2,...) VALUES(rec.col1,rec.col2);
IF MOD(i,100000) = 0 THEN
COMMIT;
END if;
i := i+1;
END LOOP;
--
COMMIT;
END;
/
i NUMBER := 1;
BEGIN
FOR rec IN (SELECt * FROM AC2001 ) LOOP
INSERT INTO AC20VIEW (col1,col2,...) VALUES(rec.col1,rec.col2);
IF MOD(i,100000) = 0 THEN
COMMIT;
END if;
i := i+1;
END LOOP;
--
COMMIT;
END;
/
全部回答
- 1楼网友:廢物販賣機
- 2021-03-21 01:31
创建物化视图是默认是不可更新的,要创建可以更新的物化视图必须加上for update 关键字。
create materialized view mv_t refresh fast with rowid for update as select * from t;
我要举报
如以上回答内容为低俗、色情、不良、暴力、侵权、涉及违法等信息,可以点下面链接进行举报!
点此我要举报以上问答信息
大家都在看
推荐资讯