1

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

使用的数据库是 oracle 或 db2。

4

6 回答 6

6

对于 Oracle,您可以尝试:

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

有关 Oracle 数据字典视图等的完整列表,请参见此处

希望能帮助到你...

于 2012-08-22T08:27:29.407 回答
2

我没有安装 oracle 来测试它,但您应该能够执行以下操作:

SELECT TABLE_NAME
FROM ALL_TAB_COLUMNS
WHERE COLUMN_NAME LIKE '%COL_FAX_ID%'
于 2012-08-22T08:28:49.127 回答
0

可能的重复如何在 MySQL 中找到所有具有特定列名的表?

回答:

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

编辑:对不起,我错过了 sql for beeeing mysql 标签...但这也可以工作吗?不知道。Gl & Hf

于 2012-08-22T08:26:46.077 回答
0
select distinct table_name from all_tab_columns where column_name like %'COL_FAX_ID%' 
于 2012-08-22T08:28:17.647 回答
0

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

SELECT *
FROM SYSCAT.COLUMNS
WHERE COLNAME LIKE '%COL_FAX_ID%'
于 2012-08-22T15:33:02.100 回答
0

For oracle:

SELECT table_name,column_name from all_tab_columns 
where column_name like '%COL_FAX_ID%'
于 2012-08-22T08:31:34.023 回答