Oracle View强制非null约束

时间:2017-10-04 08:59:46

标签: database oracle view constraints

有没有办法强制对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 

以上是约束更改的示例。提前谢谢。

1 个答案:

答案 0 :(得分:0)

这是不可能的。来自https://docs.oracle.com/database/121/.../clauses002.htm#SQLRF52180

  
    

查看约束

         

Oracle数据库不强制执行视图约束。但是,您可以通过对基表的约束来强制执行对视图的约束。

         

您只能在视图上指定唯一,主键和外键约束,并且仅在DISABLE NOVALIDATE模式下支持它们。您无法在对象列的属性上定义视图约束。