Oracle查看force not null约束
问题描述:
有没有办法在Oracle视图中为列强制非null约束。 Oracle对底层源表的视图进行约束。但即时通讯使用列上的一些功能,使视图约束为空。我知道列中的数据不会为空。有没有办法强制它?你能帮忙吗?Oracle查看force not null约束
create table a (col_1 date not null);
desc a;
Name Null Type
----- -------- ----
COL_1 NOT NULL DATE
CREATE OR REPLACE FORCE VIEW V1
as select col_1+1 col_1 from a;
desc v1;
Name Null Type
----- ---- ----
COL_1 DATE
以上是约束更改的示例。提前致谢。
答
这是不可能的。从https://docs.oracle.com/database/121/.../clauses002.htm#SQLRF52180:
视图约束
Oracle数据库不强制视图约束。但是,您可以通过对基表的约束强制实施视图约束。
您只能在视图上指定唯一的主键和外键约束,并且仅在DISABLE NOVALIDATE模式下才支持它们。您无法定义对象列的属性的视图约束。