SELECT COLUMN_NAME
FROM ALL_TAB_COLUMNS
WHERE TABLE_NAME = 'TABLE_NAME_A'
ORDER BY COLUMN_ID;
SELECT column_name
FROM all_tab_columns
WHERE table_name = 'TABLE_NAME_A'
MINUS
SELECT column_name
FROM all_tab_columns
WHERE table_name = 'TABLE_NAME_B';
- 注意Oracle表名区分大小写
- 上述查询会返回在
TABLE_NAME_A
中存在但在TABLE_NAME_B
中不存在的列名列表。通过类似的方法,可以反向对比或者使用UNION
和INTERSECT
运算符来获取更多信息。 - UNION: 返回两个查询结果集的并集,去除重复行。
- INTERSECT: 返回两个查询结果集的交集,即两个结果集共同存在的部分。
例如: -
SELECT column_name FROM all_tab_columns WHERE table_name = 'A' UNION SELECT column_name FROM all_tab_columns WHERE table_name = 'B';