仅当select查询返回oracle中的数据时才刷新的物化视图
我希望视图每周刷新一次,并且仅当vw_testdata视图中的数据可用时才刷新。也尝试使用触发器,但不起作用 是否可以刷新视图中可用的仅mv数据?如果vw_testdata是普通视图,则它是一个存储的查询,不包含任何数据。我想您应该关心的是——如果某个时候该查询没有获取任何内容,而您刷新了物化视图,那么您将丢失物化视图中的数据 如果是这样,请创建一个存储过程,例如仅当select查询返回oracle中的数据时才刷新的物化视图,oracle,oracle11g,materialized-views,Oracle,Oracle11g,Materialized Views,我希望视图每周刷新一次,并且仅当vw_testdata视图中的数据可用时才刷新。也尝试使用触发器,但不起作用 是否可以刷新视图中可用的仅mv数据?如果vw_testdata是普通视图,则它是一个存储的查询,不包含任何数据。我想您应该关心的是——如果某个时候该查询没有获取任何内容,而您刷新了物化视图,那么您将丢失物化视图中的数据 如果是这样,请创建一个存储过程,例如 Create materialized view mv_testdata BUILD IMMEDIATE REFRESH FORCE
Create materialized view mv_testdata
BUILD IMMEDIATE
REFRESH FORCE
AS
SELECT * FROM VW_TESTDATA;
它检查vw_测试数据中是否存在任何内容;如果是,则刷新物化视图
现在计划每周执行该程序
create or replace procedure p_refresh as
l_cnt number;
begin
select max(1)
into l_cnt
from vw_testdata
where exists (select null from vw_testdata);
if l_cnt = 1 then
dbms_mview.refresh('mv_testdata');
end if;
end;
/