2011-03-18 86 views
1

正如標題所示,我很好奇,如果有人知道如何查詢表的主鍵,其數據類型和主鍵列的名稱。今天早些時候,我單獨詢問了主鍵列,並且運行良好。但是,我不確定如何提取其數據類型和列名。任何幫助,將不勝感激。主鍵,其數據類型及其列名的SQL查詢?

謝謝!

+1

注意,主鍵可以由多個列的。 – DCookie 2011-03-18 21:56:26

回答

0

使用查詢表user_tab_columnsall_tab_columns

select column_name, data_type, data_length from user_tab_columns 
where table_name = 'MY_TABLE'; 

select * from all_tab_columns 
where owner = 'THE_SCHEMA_OWNER'; 
+0

如果以「THE_SCHEMA_OWNER」身份登錄,還可以選擇查詢user_tab_cols。 – dseibert 2011-03-18 21:49:47

3

這應做到:

SELECT ac.constraint_name, acc.column_name, acc.position 
    , atc.data_type, atc.data_length 
    FROM all_constraints ac JOIN all_cons_columns acc 
           ON (ac.CONSTRAINT_NAME = acc.CONSTRAINT_NAME) 
          JOIN all_tab_cols atc ON (ac.owner = atc.owner AND 
           ac.table_name = atc.TABLE_NAME AND 
           acc.COLUMN_NAME = atc.COLUMN_NAME) 
WHERE ac.owner = 'table_owner' 
    AND ac.table_name = 'your_table' 
    AND ac.constraint_type = 'P' 
ORDER BY acc.position; 
相關問題