2017-10-04 65 views
1

有沒有辦法在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 

以上是約束更改的示例。提前致謝。

回答

0

這是不可能的。從https://docs.oracle.com/database/121/.../clauses002.htm#SQLRF52180

視圖約束

Oracle數據庫不強制視圖約束。但是,您可以通過對基表的約束強制實施視圖約束。

您只能在視圖上指定唯一的主鍵和外鍵約束,並且僅在DISABLE NOVALIDATE模式下才支持它們。您無法定義對象列的屬性的視圖約束。