REFRESH

更新物化视图

声明

DBMS_MVIEW.REFRESH(
            mvnameLIST         IN VARCHAR2,
            METHOD               IN VARCHAR2,
            ROLLBACK_SEG         IN VARCHAR2,
            PUSH_DEFERRED_RPC    IN BOOLEAN,
            REFRESH_AFTER_ERRORS IN BOOLEAN,
            PURGE_OPTION         IN INTEGER,
            PARALLELISM          IN INTEGER,
            HEAP_SIZE            IN INTEGER,
            ATOMIC_REFRESH       IN BOOLEAN,
            NESTED               IN BOOLEAN);

结构

参数 说明
mvnameLIST 刷新列表
METHOD 刷新方法
ROLLBACK_SEG 暂不支持
REFRESH_AFTER_ERRORS 暂不支持
PURGE_OPTION 暂不支持
PARALLELISM 暂不支持
HEAP_SIZE 暂不支持
ATOMIC_REFRESH 暂不支持
NESTED 暂不支持

注解

mvnameLIST可以支持多个参数,也就同时刷新多个物化视图,使用逗号分隔

注解

METHOD可支持的参数有:

完全刷新 'A'/'a'/'C'/'c'

快速刷新 'F'/'f'

默认刷新(如果可以快速刷新就使用快速刷新 否则完全刷新)'?'/'0'

示例

--清除环境
DROP MATERIALIZED VIEW mv;
DROP TABLE student;
--创建测试表
CREATE TABLE student(
	NAME char(20),
	AGE int
);
--插入数据
insert into student values('李华',10);
--创建物化视图
CREATE MATERIALIZED VIEW MV BUILD IMMEDIATE REFRESH COMPLETE
AS 
SELECT * FROM student;
--创建存储过程
create or replace procedure test_refresh()

as

declare
	tmpage int;
begin
	select age INTO tmpage from MV where name = '李华';
	DBMS_output.put_line('更新视图前李华年龄为:: '||tmpage);
	update student set age = 20 where name = '李华';
	dbms_mview.refresh('MV','c');
	select age into tmpage from MV where name = '李华';
	DBMS_output.put_line('更新视图后李华年龄为: '||tmpage);
end;


/
exec test_refresh();
--清除环境
DROP MATERIALIZED VIEW mv;
DROP TABLE student;