2014-10-30 97 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

相关问题