有没有办法强制对oracle视图中的列进行非空约束。 Oracle对基础源表中的视图进行约束。但我在列上使用了一些函数,使视图约束为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
以上是约束更改的示例。提前谢谢。
答案 0 :(得分:0)
这是不可能的。来自https://docs.oracle.com/database/121/.../clauses002.htm#SQLRF52180:
查看约束
Oracle数据库不强制执行视图约束。但是,您可以通过对基表的约束来强制执行对视图的约束。
您只能在视图上指定唯一,主键和外键约束,并且仅在DISABLE NOVALIDATE模式下支持它们。您无法在对象列的属性上定义视图约束。