2013-01-23 47 views
11

我想知道是否有方法通過簡單的select語句找出某列的默認值。嘗試了幾件事情,如:找出列的默認值(Oracle)

SELECT * FROM all_tab_columns WHERE table_name = 'tablename' 

但我看不到列的默認值那裏。不,我不想使用SQL Plus之類的東西,我需要一個SELECT,猜猜是否有一些表提供了這些信息?

+6

的默認值存儲在列中的''DATA_DEFFAULT' all_tab_columns'(其** **是記載:http://docs.oracle .com/cd/E11882_01/server.112/e25513/statviews_2103.htm#I1020277) –

+0

很好的回答。我相當新的stackoverflow,爲什麼添加這個作爲評論,而不是一個答案? –

+0

該列對所有列表示,而實際上這些列都具有默認表達式,如0,'HOST',' - ',3000,SYSDATE等。我可以在我的PL/SQL Developer中看到它們,但是SELECT不幫助我。 – aLpenbog

回答

3

嘗試下面的查詢

Select * From USER_TAB_COLUMNS where TABLE_NAME ='Table Name' 
9
Select TABLE_NAME, COLUMN_NAME, DATA_DEFAULT 
from DBA_TAB_COLUMNS 
where TABLE_NAME = 'TABLE_NAME'; 

更換爲TABLE_NAME要看到默認的列數據。

+0

最好使用'like'而不是'='作爲'Select TABLE_NAME,COLUMN_NAME,DATA_DEFAULT from DBA_TAB_COLUMNS where TABLE_NAME like' %GI_LOCATION%';'更有可能得到結果。 – korefn

+7

@ korefn,不,如果你不知道表名是什麼,你可以使用LIKE;否則,'='是適當的。 –

-1

缺省值以DATA_DEFAULT柱從ALL_TAB_COLUMNS:

SELECT TABLE_NAME, COLUMN_NAME, DATA_DEFAULT 
    FROM ALL_TAB_COLUMNS 
WHERE TABLE_NAME = 'tablename' 
+1

錯誤的視圖名稱? –

+0

ops!你是絕對正確的!謝謝!只是編輯... – helenov