oracle - 使用 NOT NULL 列创建物化视图?(dblink 到外部表)
问题描述
我创建了一个物化视图,用于同步来自外部系统的数据(按 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约束。
问题:
有没有办法创建一个物化视图(通过 dblink 到外部数据库/表),它有一个带有 NOT NULL 约束的列?
解决方案
我错误地认为alter table
这不适用于 MV。
但它完全有效。
alter table my_primary_sys.wo_mv modify objectid not null;
那很简单。
推荐阅读
- apache-spark - 如何配置 spark-submit(或 DataProc)以从 GitHub 包下载 maven 依赖项(jar)?
- c - 有没有办法将多个范围放在一个 if 语句中
- c++ - 为什么不使用 static_cast 的 const void* 类型转换在 C 而不是 C++ 中是合法的
- strapi - Strapi 中是否可以有条件内容字段?
- javascript - 为可重用的 React 组件存储全局变量的最佳方式是什么?
- javascript - 将 wordpress 中的 javascript 与 wp-rocket 结合使用时,元素不会播放
- java - Java 8 Stream api,用于选择每个部门按薪水排序的前 3 名员工姓名
- android - 如何降低 MaterialAlertDialog 的消息高度
- flutter - 滚动条不显示flutter web
- javascript - 为通过 AppendChild 创建的元素指定 id?