【问题标题】:Oracle View force not null constraintOracle View 强制非空约束
【发布时间】:2017-10-04 08:59:46
【问题描述】:

有没有办法对 oracle 视图中的列强制非空约束。 Oracle 对来自底层源表的视图进行约束。但是我在列上使用了一些函数,这使得视图约束为空。我知道该列中的数据不会为空。有办法强制吗?你能帮忙吗?

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 

上面是约束发生变化的例子。提前致谢。

【问题讨论】:

    标签: database oracle view constraints


    【解决方案1】:

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

    查看约束

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

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

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2012-03-20
      • 2016-07-12
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多