搜索并获取具有给定列名的tablename?

时间:2012-08-22 08:23:44

标签: sql oracle db2

我是否可以编写一个sql查询,该查询可以找到数据库中具有列名称为%COL_FAX_ID%的所有表的名称。如果是这样,怎么样?

使用的数据库是oracle或db2。

6 个答案:

答案 0 :(得分:5)

对于Oracle,您可以尝试:

SELECT owner,
       table_name,
       column_name
  FROM all_tab_cols
 WHERE column_name LIKE '%COL_FAX_ID%'
 ORDER BY owner,
          table_name;

有关Oracle数据字典视图等的完整列表,请参阅here

希望它有所帮助...

答案 1 :(得分:2)

我没有安装oracle安装来测试它,但你应该可以做类似的事情:

SELECT TABLE_NAME
FROM ALL_TAB_COLUMNS
WHERE COLUMN_NAME LIKE '%COL_FAX_ID%'

答案 2 :(得分:0)

可能的How to find all the tables in MySQL with specific column names in them?

重复

答案:

SELECT DISTINCT TABLE_NAME 
    FROM INFORMATION_SCHEMA.COLUMNS
    WHERE COLUMN_NAME IN ('columnA','ColumnB')
        AND TABLE_SCHEMA='YourDatabase';

编辑: 对不起我小姐看到sql是mysql标签... 但这可能也有效吗?不知道。 Gl& HF

答案 3 :(得分:0)

select distinct table_name from all_tab_columns where column_name like %'COL_FAX_ID%' 

答案 4 :(得分:0)

对于oracle:

SELECT table_name,column_name from all_tab_columns 
where column_name like '%COL_FAX_ID%'

答案 5 :(得分:0)

对于DB2,您将需要使用SYSCAT.COLUMNS目录视图。

SELECT *
FROM SYSCAT.COLUMNS
WHERE COLNAME LIKE '%COL_FAX_ID%'