使用 NOT NULL 列创建物化视图? (数据库链接到外部 table)
Create materialized view with NOT NULL column? (dblink to external table)
我创建了一个从外部系统同步数据的物化视图(按 5 秒计划;通过 dblink)。
- 具有 MV 的主要系统是 Oracle 18c。
- 源data/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)有特殊要求。
tables/MVs 中需要有一个名为 OBJECTID 的列,该列具有 NOT NULL 约束。
更多信息在这里:SDO_GEOMETRY and ArcGIS
问题:
有没有一种方法可以创建实体化视图(通过 dblink 到外部 db/table),其中的列包含 NOT NULL 约束?
我错误地认为 alter table
不会用于 MV。
但它完全有效。
alter table my_primary_sys.wo_mv modify objectid not null;
这很简单。
我创建了一个从外部系统同步数据的物化视图(按 5 秒计划;通过 dblink)。
- 具有 MV 的主要系统是 Oracle 18c。
- 源data/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)有特殊要求。
tables/MVs 中需要有一个名为 OBJECTID 的列,该列具有 NOT NULL 约束。
更多信息在这里:SDO_GEOMETRY and ArcGIS
问题:
有没有一种方法可以创建实体化视图(通过 dblink 到外部 db/table),其中的列包含 NOT NULL 约束?
我错误地认为 alter table
不会用于 MV。
但它完全有效。
alter table my_primary_sys.wo_mv modify objectid not null;
这很简单。