我是否可以编写一个sql查询,该查询可以找到数据库中具有列名称为%COL_FAX_ID%的所有表的名称。如果是这样,怎么样?
使用的数据库是oracle或db2。
答案 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%'