我做了我的研究;我找不到与我的问题类似的东西。如果我的问题重复,请原谅我,因为我没有在我的研究中找到。
我有2个架构,schema1和schema2,它们都有相同的6个表。
但并非每个表在架构中都有相同的列。
Exp:tab1在schema1中有40列,但是tab1在schema 2中有38列。因此我想要添加2个缺少的列。我需要插入数据。
我可以手动插入它们但是我需要时间,是不是有简单的查询?
在我的研究中,我找到了有助于此的工具。感谢
答案 0 :(得分:1)
以下将显示schema1中schema2中不存在的列。
SELECT table_name, column_name, data_type, data_length
FROM all_tab_columns
WHERE owner = 'schema1'
MINUS
SELECT table_name, column_name, data_type, data_length
FROM all_tab_columns
WHERE owner = 'schema2'
我编辑了上述内容,以包含Alex的建议,以便在输出中包含数据类型和长度。
答案 1 :(得分:0)
如果您希望从侧面看到差异,请使用full outer join
select a.table_name , a.column_name , a.data_type , a.data_length ,
b.table_name , b.column_name , b.data_type , b.data_length
from all_tab_columns a full outer join all_tab_columns b
on (a.column_name = b.column_name)
where a.owner = 'OWNER_A'
and a.table_name = 'TABLE_A'
and b.owner = 'OWNER_B'
and b.table_name = 'TABLE_B'