为什么在创建这个简单的物化视图示例时会出现 ORA-12054 错误?

2023-12-06

ALTER TABLE RECORDINGS ADD PRIMARY KEY (ID);

CREATE MATERIALIZED VIEW LOG ON RECORDINGS TABLESPACE USERS NOLOGGING;

DROP MATERIALIZED VIEW REC_SEARCH_TEST;
CREATE MATERIALIZED VIEW REC_SEARCH_TEST
REFRESH COMPLETE ON COMMIT
AS (
    SELECT DISTINCT ID, TITLE FROM RECORDINGS
);


ORA-12054: cannot set the ON COMMIT refresh attribute for the materialized view

无法理解这里出了什么问题,我知道如果我取出 DISTINCT 子句它就可以工作,但是如果我指定必需的“REFRESH COMPLETE ON COMMIT”,为什么我不能使用“DISTINCT”。

如果我按需使用 DISTINCT 和 REFRESH 没有问题,但这些不是要求。


似乎通过添加 DISTINCT,您已经使视图的底层 SQL 不符合快速刷新的条件,因此无法与 ON COMMIT 一起使用(即使您指定刷新完成而不是刷新快速)。从甲骨文文档:

两种刷新执行模式是 ON COMMIT 和 ON DEMAND。取决于 在您创建的物化视图上,某些选项可能不可用 可用的。刷新模式说明如表8-4所示。

表 8-4 刷新模式

承诺时

当事务修改其中之一时,刷新会自动发生 物化视图的详细信息表提交。这个可以指定 只要物化视图可以快速刷新(换句话说, 不复杂)。使用此模式需要 ON COMMIT 权限。

一经请求

当用户手动执行可用的操作之一时,就会发生刷新 DBMS_MVIEW 包中包含的刷新过程(REFRESH、 REFRESH_ALL_MVIEWS、REFRESH_DEPENDENT)。

同一文档链接也有快速刷新的限制列表。

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

为什么在创建这个简单的物化视图示例时会出现 ORA-12054 错误? 的相关文章

随机推荐

  • 使用 NLTK 提取名词和动词

    我有 Django Rest 应用程序和一个模型任务 我对自然处理完全陌生 我想构建一个返回名词和动词列表的函数 它看起来像这样 api view GET def noun verb list request nouns verbs Lis
  • Groovy:Lombok @NoArgsConstructor 未创建默认构造函数

    我在用lombok 1 18 6在我的春季启动项目中 我有 NoArgsConstructor但仍然得到org springframework orm jpa JpaSystemException No default constructo
  • Android - Firestore/Firebase 实时数据库“.info/connected”返回错误的连接状态

    我在应用程序中使用 Firestore Beta 我想检查是否存在与 Firestore 数据库的有效在线连接 文档称 目前没有直接的方法来查询连接状态 但可以使用 Firebase 连接状态作为解决方法 代码片段也可以在文档的这一部分中找
  • AS/400:使用COMPUTE功能,不同字段定义结果不一致

    我在使用 AS 400 中的 COMPUTE 函数时遇到了一个神秘的问题 场景如下 01 WSAA AMOUNT A PIC S9 15 V9 02 COMP 3 01 WSAA AMOUNT B 01 PIC S9 16 V9 02 VA
  • 在 C++ 中创建文件夹

    我最近开始使用 C 工作 当我在执行代码时必须创建目录时遇到了这种情况 当我必须创建一个文件夹时 代码工作正常 但当我必须使用这个新创建的文件夹创建另一个文件夹时 代码会失败 假设 我在C 并想将我的文件存储在C A B 下面的代码使用mk
  • 使用 ncu (NsightComputeCli) 获取 nvprof 默认行为

    默认nvprof输出很棒 但是nvprof已被弃用 取而代之的是ncu 我怎样才能使ncu给我一个看起来更像的输出nvprof 最小工作示例 我有2个range以一种非常不理想的方式调用的函数 仅使用 1 个线程 比其他的需要更长的时间ra
  • 性能:子查询或连接

    我有一个关于子查询 连接另一个表的性能的小问题 INSERT INTO Original Person PID Name Surname SID SELECT ma PID new TBL Name ma Surname TBL SID F
  • 如何执行多个相继完成的 Alamofire 请求?

    我想执行多个 Alamofire 请求 但是 由于数据依赖性 新请求只能在前一个请求完成后才开始 我已经问过一个question一个更一般的异步请求示例 通过以下方法解决OperationQueue 然而 我并没有成功地用 Alamofir
  • fork()的执行顺序可以确定吗?

    我正在做教科书 操作系统概念第七版 的练习 我有点困惑如何fork 工作 据我了解 fork 创建一个与其父进程同时运行的子进程 但是 我们如何确切地知道哪个进程首先运行呢 我的意思是执行顺序 Problem使用以下命令编写 C 程序for
  • R CMD BATCH 或 Rscript 错误停止

    我不认为R CMD BATCH or Rscript应该在错误时停止 但我希望它停止 或类似的东西 作为一个例子 我有这个test R stop I really mean stop cat no I dont want this prin
  • 为 nth-child 和 nth-of-type 指定任意子级(无模式)列表

    所以我现在已经读了足够多的关于各种时髦的内容nth child and nth of type模式让第七个儿子的第七个儿子驾驶一艘宇宙飞船往返于冥王星 但我仍然没有找到一种方法来简单地以简洁的方式提供特定儿童的列表 它会像这样工作 td n
  • 判断SQLite数据库是否被锁定

    我读过关于如何检测 SQLite 数据库是否被锁定的其他答案 它建议使用sqlite3 busy handler sqlite3 busy timeout 我使用的是 Qt 它支持 SQLite 数据库 但这在这里并不重要 因为在我的应用程
  • MySQL注入查询

    我熟悉准备好的语句 并且我知道它们是防止 MySQL 注入的最佳实践 但我想知道这个 PHP MySQL 语句如何面临注入攻击的风险 result mysqli query db SELECT name FROM users WHERE i
  • Flash AS3 尝试获取外部 swf 时出现安全沙箱冲突

    嗨 我正在尝试从不同的服务器将 swf 文件加载到我的 Flash 应用程序 当我尝试将其加载到 flash IDE crl enter 上时 一切工作正常 但是当我将 swf 作为独立的 swf 文件运行或通过调试它时 我收到此错误 Se
  • 如何自定义像这样的按钮控件?

    我想制作一个像这样的自定义按钮控件 图像按钮可以 我是新用户 所以不能在这里发布图片 所以我上传了图片here 在尝试了一些教程后我现在有点绝望 任何建议都将受到高度赞赏 Thanks 更新于 08 10 2019 我很多年前就问过这个问题
  • 如何将xml元素绑定到对象成员变量中?

    我正在尝试使用 moxy 将 xml 解组为对象 下面是 xml 的示例
  • 创建有序计数器

    我一直在阅读如何super 作品 我碰到这个食谱演示了如何创建有序计数器 from collections import Counter OrderedDict class OrderedCounter Counter OrderedDic
  • 如何使用 C++ 代码中的 setsockopt() 调用更改 TCP 拥塞控制算法

    是否可以改变TCP拥塞控制算法 from Cubic to Reno或反之亦然使用套索克选择 call 来自 C 代码在Linux中 我正在寻找这样做的示例代码 您可以使用TCP CONGESTION用于获取或设置套接字的拥塞控制算法为下列
  • php检查数组值是否连续

    我有一个数组 dice 4 7 3 6 7 我需要一种方法来检查该数组中的每个值是否是连续的数字 有一个简单的方法可以做到这一点吗 尝试这个 dice array 4 5 2 6 7 function checkConsec d for i
  • 为什么在创建这个简单的物化视图示例时会出现 ORA-12054 错误?

    ALTER TABLE RECORDINGS ADD PRIMARY KEY ID CREATE MATERIALIZED VIEW LOG ON RECORDINGS TABLESPACE USERS NOLOGGING DROP MAT