CREATE MATERIALIZED VIEW LOG ON emp WITH PRIMARY KEY ;
CREATE MATERIALIZED VIEW mv_emp REFRESH FAST ON DEMAND NEXT null
AS
SELECT * FROM emp ;
SELECT * FROM mv_emp;
INSERT INTO emp SELECT EMPNO+1, ENAME, JOB, MGR, HIREDATE, SAL, COMM, DEPTNO FROM emp WHERE empno=7934;
INSERT INTO emp SELECT EMPNO+2, ENAME, JOB, MGR, HIREDATE, SAL, COMM, DEPTNO FROM emp WHERE empno=7934;
INSERT INTO emp SELECT EMPNO+3, ENAME, JOB, MGR, HIREDATE, SAL, COMM, DEPTNO FROM emp WHERE empno=7934;
COMMIT;
--dbms_refresh.refresh过程 sql%rowcount 不能输出刷新了多少数据量
DECLARE V_CNT INTEGER; BEGIN DBMS_REFRESH.REFRESH(‘mv_emp‘); V_CNT := SQL%ROWCOUNT; DBMS_OUTPUT.PUT_LINE(V_CNT); END;
INSERT INTO emp SELECT EMPNO+4, ENAME, JOB, MGR, HIREDATE, SAL, COMM, DEPTNO FROM emp WHERE empno=7934;
COMMIT;
--DBMS_MVIEW.refresh过程 sql%rowcount 不能输出刷新了多少数据量
DECLARE V_CNT INTEGER; BEGIN DBMS_MVIEW.REFRESH(LIST => ‘mv_emp‘, METHOD => ‘f‘,); V_CNT := SQL%ROWCOUNT; DBMS_OUTPUT.PUT_LINE(V_CNT); END;
结论:用这俩过程刷出来的mv不能记录刷了多少数据。
原文:https://www.cnblogs.com/fooobabar/p/12576793.html