2014-10-30 93 views
1

我想識別名稱與給定輸入列匹配且其數據類型與給定輸入列匹配的數據庫中的所有列。有人可以爲此提出一個查詢嗎?Oracle如何查找與特定列名匹配的所有列

+0

的可能重複[我怎樣才能從一個表的列名?(HTTP ://stackoverflow.com/questions/452464/how-can-i-get-column-names-from-a-table) – 2014-10-30 07:09:19

+1

不完全重複,但接受的答案在這個鏈接的問題也是有用的。 – Thilo 2014-10-30 07:11:26

+0

可能不是。我們將如何確保獲得相同數據類型的列? – user2783058 2014-10-30 07:11:48

回答

0

...一個數據庫,其與給定的輸入匹配的列,其數據類型日比賽中的所有列給定輸入列

您可以使用all_tab_columns數據字典視圖。例如,選擇NUMBER類型的所有列,其中列名與"A"開始,使用類似

SELECT table_name, column_name, data_type 
FROM all_tab_columns 
WHERE data_type='NUMBER' AND column_name like 'A%'; 
TABLE_NAME    COLUMN_NAME   DATA_TYPE 
---------------------- ------- ------------------------------ 
AUDIT_ACTIONS   ACTION     NUMBER 
SDO_CS_SRS    AUTH_SRID    NUMBER 
APEX_WS_APP_PAGES  APPLICATION_ID   NUMBER 
... 
+0

嗨,對不起,這可能是一個基本問題,但我有一個迫切的要求:我們如何獲得所有列該表以及與特定列匹配的其他表?結果不應包含我們正在比較的列。例如,在上面的例子中,我想要所有的列以及其他類似於A的表,但是我們不應該在最終結果中顯示A. – user2783058 2014-11-21 15:31:28

0

例如,如果我想尋找在表「INT_TRN_RLDEP_CELL」名稱「CELL」列,那麼查詢將

select * from ALL_TAB_COLUMNS where table_name like 'INT_TRN_GRN_RLDEP_CELL' and COLUMN_NAME like 'CELL';

的更多信息,請訪問http://en.wikipedia.org/wiki/Oracle_metadata或Oracle文檔上表metada

相關問題