Oracle 虽然刷新完成,但具体化视图错误ORA-12004

Oracle 虽然刷新完成,但具体化视图错误ORA-12004,oracle,materialized-views,Oracle,Materialized Views,当我今天启动SQL Developer时,我注意到Materialized视图中有一个错误。 错误是众所周知的ORA-12004:无法使用快速刷新 当然,我已经使用过google,我得出结论,快速刷新需要日志表,我的错误消息还说无法访问日志表。 但是:我没有使用快速刷新:/ 问题可能是,我的select有时不包含任何数据?例如,不适用于周六和周日 我是如何创建mat视图的: CREATE MATERIALIZED VIEW Matv_test_1 BUILD IMMEDIATE REFRESH

当我今天启动SQL Developer时,我注意到Materialized视图中有一个错误。 错误是众所周知的ORA-12004:无法使用快速刷新

当然,我已经使用过google,我得出结论,快速刷新需要日志表,我的错误消息还说无法访问日志表。 但是:我没有使用快速刷新:/

问题可能是,我的select有时不包含任何数据?例如,不适用于周六和周日

我是如何创建mat视图的:

CREATE MATERIALIZED VIEW Matv_test_1
BUILD IMMEDIATE 
REFRESH COMPLETE
NEXT (trunc(sysdate) + 4/24) + 1
AS
select...
那么问题出在哪里呢

关于这一点,还有两件事: 1) 默认情况下是否启用日志记录?或者在创建视图时如何启用日志记录? 2) 下一个子句是否影响刷新类型,或者这两个选项是否完全不同?例如:在我的代码obove中,是仅在设置的时间进行刷新,还是在所选表发生更改后进行刷新?如果是最后一个,在设定的时间做什么

如果我使用

NEVER REFRESH
NEXT (trunc(sysdate) + 4/24) + 1
是否进行了更新或实施

谢谢

  • 必须创建日志以快速刷新。默认情况下不启用它。也许,我们必须为mv中引用的表创建日志。我们不需要指定在创建mv时使用特定日志。Oracle内部负责使用我们为表创建的日志。如果日志未启用,并且我们正在创建一个mv,该mv的日志是提交、快速刷新等的先决条件,则会出现错误

  • Next子句指定何时刷新mv。它会相应地创建一个oracle作业来执行刷新。在您的情况下,如指定的buildimmediate,将立即进行刷新,下一次刷新将按照您在next子句中指定的时间间隔进行

  • 如果指定了never refresh,我们就不需要使用下一个子句,我想我们可能会遇到错误


  • 嗯。今天是星期一,错误又出现了:(快速刷新不会是问题,因为我指定了一个完整的刷新,就像我在第一篇文章中提到的。2)和3):好的,谢谢。