2015-05-04 121 views
2

我需要一個Oracle數據庫查詢,我可以從中獲取主鍵,數據類型和BYTES中屬性的長度。Oracle數據庫查詢

目前我做的:

SELECT cols.table_name, cols.column_name 
FROM all_constraints cons, all_cons_columns cols 
WHERE cons.constraint_type = 'P' 
    AND cons.constraint_name = cols.constraint_name 
    AND cons.owner like 'DBP%'; 

在那裏我得到的表名,列名這是主鍵。現在我需要數據類型和BYTES中列的長度。

回答

1

all_tab_columns加入以獲取數據類型和(最大)長度(以字節爲單位)。

select 
    cols.table_name, 
    cols.column_name, 
    tab_cols.data_type, 
    tab_cols.data_length 
from all_constraints cons 
join all_cons_columns cols 
    on cons.owner = cols.owner 
    and cons.constraint_name = cols.constraint_name 
join all_tab_columns tab_cols 
    on cols.owner = tab_cols.owner 
    and cols.table_name = tab_cols.table_name 
    and cols.column_name = tab_cols.column_name 
where cons.constraint_type = 'P' 
    and cons.owner like 'DBP%'; 

你沒有指定,但我想你想要的最大長度。如果您想要實際使用的色譜柱大小,您可以使用AVG_COL_LENGTH並將其乘以。