物化视图能不能记录刷新的数据量

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不能记录刷了多少数据。

猜你喜欢

转载自www.cnblogs.com/fooobabar/p/12576793.html