【问题标题】:Create materialized view with NOT NULL column? (dblink to external table)使用 NOT NULL 列创建物化视图? (dblink 到外部表)
【发布时间】:2021-03-08 14:05:07
【问题描述】:

我创建了一个物化视图,用于同步来自外部系统的数据(按 5 秒的时间表;通过 dblink)。

  • 具有 MV 的主系统是 Oracle 18c。
  • 具有源数据/dblink 的外部系统是 Oracle 19c

create materialized view log on my_external_sys.workorder with rowid;  --external system 

create materialized view my_primary_sys.wo_mv --primary system 
build immediate 
refresh force 
on demand 
start with sysdate next sysdate + (5/(60*60*24))
as
select
    cast(workorderid as number(38,0)) as objectid,
    wonum,
    status,
    --other fields
    longitudex,
    latitudey
from
    my_external_sys.workorder@gistomax --dblink

物化视图按预期工作。

但是,我现在意识到我的主系统对其表(或者,在本例中为 MV)有特殊要求。

  • 表/MV 中需要有一个名为 OBJECTID 的列,该列具有 NOT NULL 约束。

  • 更多信息在这里:SDO_GEOMETRY and ArcGIS


问题:

有没有办法创建一个物化视图(通过 dblink 到外部 db/table),它有一个带有 NOT NULL 约束的列?

【问题讨论】:

    标签: oracle constraints materialized-views dblink notnull


    【解决方案1】:

    我错误地认为alter table 不能用于 MV。

    但它完全有效。

    alter table my_primary_sys.wo_mv modify objectid not null;
    

    这很容易。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2018-08-24
      • 2021-05-04
      • 1970-01-01
      • 1970-01-01
      • 2012-03-07
      • 2021-05-24
      • 2011-11-16
      • 2014-04-25
      相关资源
      最近更新 更多