首页 > 其他分享 >MV On demand refresh权限问题

MV On demand refresh权限问题

时间:2022-08-30 12:02:04浏览次数:75  
标签:DBMS END demand refresh MV 刷新 TEST

MV_TEST在Schema1下创建,Schema2下无法进行刷新解决方法Instead of ALTER ANY MATERIALIZED VIEW try GRANT ALTER ON MV_TEST to Schema2

ERROR at line 1:
ORA-01031: insufficient privileges
ORA-06512: at "SYS.DBMS_SNAPSHOT", line 2251
ORA-06512: at "SYS.DBMS_SNAPSHOT", line 2457
ORA-06512: at "SYS.DBMS_SNAPSHOT", line 2426
ORA-06512: at line 1

Schema1:

create materialized veiw mv_test refresh force on demand
as
select * from test;

CREATE OR REPLACE PROCEDURE REFRESH_MV_TEST_RECON
AS
BEGIN
DBMS_MVIEW.refresh(List =>'MV_TEST',Method =>'complete',refresh_after_errors =>True);
END;
/

GRANT EXECUTE ON REFRESH_MV_TEST_RECON TO Schema2;

GRANT SELECT ON MV_TEST TO Schema2;

 

Schema2:

BEGIN
Schema1.REFRESH_MV_TEST;
END;
/

SELECT * FROM MV_TEST;

如上即可达到刷新的效果。

------------------------------------------------Basic Knowledge--------------------
--全量刷新
BEGIN
DBMS_MVIEW.refresh(List =>'MV_TEST',Method =>'complete',refresh_after_errors =>True);
END;
/

--增量刷新
BEGIN
DBMS_MVIEW.refresh(List =>'MV_TEST',Method =>'fast',refresh_after_errors =>True);
END;
/

BEGIN
DBMS_MVIEW.refresh(List =>'MV_TEST',Method =>'force',refresh_after_errors =>True);
END;
/

create materialized veiw mv_test refresh force on demand
start with to_date('2022-06-30 10:00:00','yyyy-mm-dd hh24:mi:ss')
next to_date(concat(to_char(sysdate+1,'yyyy-mm-dd'),'10:00:00'),'yyyy-mm-dd hh24:mi:ss')
as
select * from test;

on demand:在用户需要刷新的时候刷新,这里就要求用户自己手动去刷新了(也可以使用JOB定时刷新)
on commit:当主表中有数据提交的时候,立即刷新MV中的数据;
start...:从指定的时间开始,每隔一段时间(由next指定)就刷新一次;

标签:DBMS,END,demand,refresh,MV,刷新,TEST
From: https://www.cnblogs.com/ayumie/p/16638807.html

相关文章

  • Spring MVC组件之HandlerAdapter
    SpringMVC组件之HandlerAdapterHandlerAdapter概述HandlerAdapter组件是一个处理器Handler的适配器。HandlerAdapter组件的主要作用是适配特定的Handler来处理相应的请......
  • Spirng MVC
    dispatcherServlet:前置控制器,在spring项目启动时生成,初始化其中的handlermapper,handlderadapter,viewresponse。作为http请求的入口,dispatcherServlet会先通过handl......
  • ARMv8 reboot 流程
    LinuxrebootprocessforARM-v8is: RebootcommandfinallygoestotheATF.(Armtrustedfirmware).Sequence:machine_restart("arch/arm64/kernel/process.c")......
  • java - 获取视频的第n帧画面,支持avi、mp4、wmv格式
    1.背景网上的东西真实够坑的,用不了就算了,还基本是复制粘贴2,解决需要导包,必须是这两个版本<dependency><groupId>org.bytedeco</groupId><......
  • Java开发学习(二十七)----SpringMVC之Rest风格解析及快速开发
    一、REST简介REST(RepresentationalStateTransfer),表现形式状态转换,它是一种软件架构风格当我们想表示一个网络资源的时候,可以使用两种方式:传统风格资源描述形式......
  • 事物的隔离性和MVCC
    事物的隔离性mysql的服务端是支持多个客户端同时与之连接的,每个客户端可能还并发了好几个连接,所以mysql是需要同时处理很多事情的,每一件独立的事情就叫做事务。我们知道......
  • ASP.NET MVC的故事
    参考:《ASP.NETMVC实战》邹琼俊20220825介绍工具(VS,Git,Reflector),VS快捷键和使用技巧C#语法的特性(都是语法糖)C#2.0:2.1泛型:使用中括号,类似占位符,延迟确定数据类型,有......
  • 04Spring MVC入门
    SpringMVC三层架构表现层业务层数据访问层MVC(处理表现层)Model:模型层View:视图层Controller:控制层底层请求方式在controller中添加@RequestMapping("/......
  • Taurus.MVC 微服务框架 入门开发教程:项目部署:6、微服务应用程序Docker部署实现多开。
    系列目录:本系列分为项目集成、项目部署、架构演进三个方向,后续会根据情况调整文章目录。开源地址:https://github.com/cyq1162/Taurus.MVC本系列第一篇:Taurus.MVCV3.......
  • MySQL八:读懂MVCC多版本并发控制
    转载~mysql在并发的情况下,会引起脏读,幻读,不可重复读等一系列的问题,为解决这些问题,引入了mvcc的机制。本文就详细看看mvcc是怎么解决脏读,幻读等问题的。1、数据库事务1.......