iis服务器助手广告广告
返回顶部
首页 > 资讯 > 数据库 >Oracle物化视图之on prebuilt table
  • 515
分享到

Oracle物化视图之on prebuilt table

2024-04-02 19:04:59 515人浏览 泡泡鱼
摘要

    创建物化视图添加on prebuilt table的好处是 ,在创建的物化视图的schema下要有与物化视图同名的表,如果更新物化视图,同名表也会被更新。当删除物化视图,不会删除

    创建物化视图添加on prebuilt table的好处是 ,在创建的物化视图的schema下要有与物化视图同名的表,如果更新物化视图,同名表也会被更新。当删除物化视图,不会删除同名的表,且保留从基表更新过来的数据。如果创建物化视图不用on prebuilt table,则不需要在创建的物化视图的schema下要有与物化视图同名的表。

    在用on prebuilt table创建物化视图时,需要注意的几点:

    1.创建的物化视图的schema下必须要有一个与物化视图同名的表。

    2.与物化视图同名的表结构,必须与创建物化视图select query语句字段名相同,且一一对应。



1.在test1下创建基表:

sql> conn test1/test1

Connected.

SQL> create table testdb1(col1 varchar2(20),col2 number);


Table created.


SQL> alter table testdb1 add constraint pk_a primary key(col1);


Table altered.


SQL> insert into testdb1 values('1',1);


1 row created.


SQL> insert into testdb1 values('2',2);


1 row created.


SQL> commit;


Commit complete.


2.在test1下创建物化视图日志

SQL> create materialized view log on testdb1 with primary key;


Materialized view log created.


SQL> select * from tab;


TNAME       TABTYPE CLUSTERID

------------------------------ ------- ----------

MLOG$_TESTDB1       TABLE

RUPD$_TESTDB1       TABLE

TESTDB1       TABLE




3.在SYS用户下授予test2相关的权限:

SQL> conn  / as sysdba

Connected.



SQL> grant select on test1.testdb1 to test2;


Grant succeeded.


SQL> grant select on test1.MLOG$_TESTDB1 to test2;


Grant succeeded.


SQL> grant create materialized view to  test2;


Grant succeeded.



4.在test2下创建物化视图

SQL> conn test2/test2

Connected.



--通过下面错误可以看出on prebuilt table创建物化视图必须要创建一张与物化视图同名的表

SQL> create materialized view testdb2 on prebuilt table as select * from test1.testdb1

        *

ERROR at line 1:

ORA-12059: prebuilt table "TEST2"."TESTDB2" does not exist



SQL> create table testdb2(col1 varchar2(20));


Table created.


--通过下面错误可以看出创建的物化视图query数据项必须要与testdb2相同且一一对应

SQL> create materialized view testdb2 on prebuilt table as select * from test1.testdb1;

create materialized view testdb2 on prebuilt table as select * from test1.testdb1

                                                      *

ERROR at line 1:

ORA-12060: shape of prebuilt table does not match definition query



SQL> create materialized view testdb2 on prebuilt table as select col2 from test1.testdb1;

create materialized view testdb2 on prebuilt table as select col2 from test1.testdb1

                                                             *

ERROR at line 1:

ORA-12060: shape of prebuilt table does not match definition query



SQL> create materialized view testdb2 on prebuilt table as select col1 from test1.testdb1;


Materialized view created.


SQL> select count(*) from testdb2;


  COUNT(*)

----------

0



testdb2表已经做物化视图了:

SQL> delete from testdb2;

delete from testdb2

            *

ERROR at line 1:

ORA-01732: data manipulation operation not legal on this view





5.更新物化视图

SQL> exec dbms_mview.refresh('testdb2','c');


PL/SQL procedure successfully completed.


SQL> select count(*) from testdb2;


  COUNT(*)

----------

2





SQL> conn test1/test1

Connected.

SQL>  insert into testdb1 values('3','3');


1 row created.


SQL> commit;


Commit complete.



SQL> conn test2/test2

Connected.


SQL> exec dbms_mview.refresh('testdb2','c');


PL/SQL procedure successfully completed.


SQL> select count(*) from testdb2;


  COUNT(*)

----------

3


6.在test2下删除物化视图:

SQL> drop materialized view testdb2;


Materialized view dropped.


--可见同名的表还存在。

SQL> select count(*) from testdb2;


  COUNT(*)

----------

3


您可能感兴趣的文档:

--结束END--

本文标题: Oracle物化视图之on prebuilt table

本文链接: https://www.lsjlt.com/news/43661.html(转载时请注明来源链接)

有问题或投稿请发送至: 邮箱/279061341@qq.com    QQ/279061341

本篇文章演示代码以及资料文档资料下载

下载Word文档到电脑,方便收藏和打印~

下载Word文档
猜你喜欢
  • Oracle物化视图怎么用
    这篇文章主要介绍了Oracle物化视图怎么用,具有一定借鉴价值,感兴趣的朋友可以参考下,希望大家阅读完这篇文章之后大有收获,下面让小编带着大家一起了解一下。 Oracle物化视图的用法与总结 物...
    99+
    2024-04-02
  • oracle物化视图快速更新
    建立测试表create table T_table nologging as select * from dba_o...
    99+
    2024-04-02
  • Oracle中怎么创建物化视图
    Oracle中怎么创建物化视图,相信很多没有经验的人对此束手无策,为此本文总结了问题出现的原因和解决方法,通过这篇文章希望你能解决这个问题。 oracle物化视图 一、oracle物化视图基本概念&nb...
    99+
    2024-04-02
  • 物化视图详解
    相关内容参考: Oracle 物化视图 说明: https://www.cnblogs.com/xiaohuilong/p/5995596.html   一、物化视图概述 oracl...
    99+
    2024-04-02
  • Oracle普通视图和物化视图的区别有哪些
    本篇内容主要讲解“Oracle普通视图和物化视图的区别有哪些”,感兴趣的朋友不妨来看看。本文介绍的方法操作简单快捷,实用性强。下面就让小编来带大家学习“Oracle普通视图和物化视图的区别有哪些”吧!物化视...
    99+
    2024-04-02
  • oracle如何创建、刷新物化视图
    这篇文章将为大家详细讲解有关oracle如何创建、刷新物化视图,小编觉得挺实用的,因此分享给大家做个参考,希望大家阅读完这篇文章后可以有所收获。 Create materialized view log ...
    99+
    2024-04-02
  • Oracle物化视图管理及重要视图怎么理解
    这篇文章主要讲解了“Oracle物化视图管理及重要视图怎么理解”,文中的讲解内容简单清晰,易于学习与理解,下面请大家跟着小编的思路慢慢深入,一起来研究和学习“Oracle物化视图管理及重要视图怎么理解”吧!...
    99+
    2024-04-02
  • ORA-32334: cannot create prebuilt materialized view on a table already referenced by a MV ORACLE 报错
    文档解释 ORA-32334: cannot create prebuilt materialized view on a table already referenced by a MV Cause: the table on which...
    99+
    2023-11-05
    报错 故障 prebuilt
  • MongoDB 按需物化视图
    php小编子墨为大家带来了关于MongoDB按需物化视图的介绍。作为一种非关系型数据库,MongoDB提供了物化视图的功能,可以根据实际需求将查询结果以视图的形式存储在数据库中,提高查...
    99+
    2024-02-12
  • oracle物化视图日志结构是怎样的
    本篇内容介绍了“oracle物化视图日志结构是怎样的”的有关知识,在实际案例的操作过程中,不少人都会遇到这样的困境,接下来就让小编带领大家学习一下如何处理这些情况吧!希望大家仔细阅读,能够学有所成!orac...
    99+
    2024-04-02
  • mysql中物化视图的快速刷新测试与物化视图日志分析
    本篇内容介绍了“mysql中物化视图的快速刷新测试与物化视图日志分析”的有关知识,在实际案例的操作过程中,不少人都会遇到这样的困境,接下来就让小编带领大家学习一下如何处理这些情况吧!希望大家仔细阅读,能够学...
    99+
    2024-04-02
  • Oracle如何使用物化视图查询重写query rewrite
    这篇文章主要介绍了Oracle如何使用物化视图查询重写query rewrite,具有一定借鉴价值,感兴趣的朋友可以参考下,希望大家阅读完这篇文章之后大有收获,下面让小编带着大家一起了解一下。 ...
    99+
    2024-04-02
  • PL/SQL中的视图与物化视图怎么应用
    在PL/SQL中,视图和物化视图是用来简化和优化查询的工具。视图是一个虚拟表,可以像普通表一样被查询,但实际上并不存储任何数据,而是...
    99+
    2024-05-08
    PL/SQL
  • PostgreSQL物化视图的示例分析
    这篇文章主要介绍PostgreSQL物化视图的示例分析,文中介绍的非常详细,具有一定的参考价值,感兴趣的小伙伴们一定要看完!1、创建视图CREATE MATERIALIZED VIEW&...
    99+
    2024-04-02
  • oracle中Job怎么定期执行存储刷新物化视图
    本篇内容主要讲解“oracle中Job怎么定期执行存储刷新物化视图”,感兴趣的朋友不妨来看看。本文介绍的方法操作简单快捷,实用性强。下面就让小编来带大家学习“oracle中Job怎么定期执行存储刷新物化视图...
    99+
    2024-04-02
  • 通过案例学调优之--跨库建立物化视图(Materialized View)
    通过案例学调优之--跨库建立物化视图(Materialized View)应用环境:操作系统: RedHat EL55Oracle:   Oracle 10gR2一、物化视图概述Oracle的物化...
    99+
    2024-04-02
  • 12c 物化视图 - 刷新方式的对比
    ...
    99+
    2024-04-02
  • 深入了解MySQLClickHouse中的物化视图功能
    目录数据表与视图ClickHouse的物化视图物化视图的更新使用示例数据表与视图 数据库表是一种关系型数据库中的基本对象,用于存储数据。每个表包含多个列和行,其中每个列代表一种数据类...
    99+
    2023-05-20
    MySQL ClickHouse物化视图 MySQL ClickHouse
  • 12c物化视图中什么是快速刷新
    这篇文章主要介绍了12c物化视图中什么是快速刷新,具有一定借鉴价值,感兴趣的朋友可以参考下,希望大家阅读完这篇文章之后大有收获,下面让小编带着大家一起了解一下。实验之前先明确两个定义:主表:SH.costs...
    99+
    2024-04-02
  • Python数据可视化之环形图
    目录1.引言2.方式一:饼图形式3.方式二:条形图形式1.引言 环形图(圆环)在功能上与饼图相同,整个环被分成不同的部分,用各个圆弧来表示每个数据所占的比例值。但其中心的空白可用于显...
    99+
    2024-04-02
软考高级职称资格查询
编程网,编程工程师的家园,是目前国内优秀的开源技术社区之一,形成了由开源软件库、代码分享、资讯、协作翻译、讨论区和博客等几大频道内容,为IT开发者提供了一个发现、使用、并交流开源技术的平台。
  • 官方手机版

  • 微信公众号

  • 商务合作