2012-03-02 78 views
6

如何檢查表中的列是否在oracle數據庫中有非空約束?可以使用數據字典進行檢查嗎?如何在oracle sql中檢查非空列約束?

+3

這個問題被問過,一起來看看: [計算器空列] [1] [1]:http://stackoverflow.com/questions/1028956/modify-column-in -oracle-how-to-check-if-a-column-is-nullable-before-setting- – matlabit 2012-03-02 01:19:27

回答

13
SELECT nullable 
    FROM all_tab_cols 
WHERE owner = <<owner of table>> 
    AND table_name = <<name of table>> 
    AND column_name = <<name of column>> 

將工作假設列沒有標記NULL而不是說,有CHECK約束檢查,這是不爲NULL。

+2

應嚴格使用使用檢查約束而不是列DDL來定義非空columo.ns的人。 – APC 2012-03-02 10:11:43

+1

@APC表示同意,但在內部,Oracle表示具有檢查約束條件的那些「NOT NULL」列。它們與'ALL_CONSTRAINTS'完全無法區分。 RRgghgh。 > :-( – 2016-09-09 22:35:44