Oracle 比较PL SQL中不同列的两个表

Oracle 比较PL SQL中不同列的两个表,oracle,plsqldeveloper,alter-table,Oracle,Plsqldeveloper,Alter Table,我对PL SQL非常陌生,我遇到了一个问题。希望它不太难解决,我只是把它全搞错了。 我的问题是:我有两个列数不同的表。我需要运行一个检查,看看不同的列是什么,然后将它们添加到一个表中。 例如: 表1有一个名为name的列 表2有两列名为name和id (名称在两个表中具有相同的数据类型) 在这种情况下,我需要运行一个脚本来检查表1和表2,查看表1是否缺少“id”列,然后将其添加到表1中 这可能吗 到目前为止,我有: SELECT TABLE_NAME, COLUMN_NAME FROM user

我对PL SQL非常陌生,我遇到了一个问题。希望它不太难解决,我只是把它全搞错了。 我的问题是:我有两个列数不同的表。我需要运行一个检查,看看不同的列是什么,然后将它们添加到一个表中。 例如:

表1有一个名为name的列

表2有两列名为name和id

(名称在两个表中具有相同的数据类型)

在这种情况下,我需要运行一个脚本来检查表1和表2,查看表1是否缺少“id”列,然后将其添加到表1中

这可能吗

到目前为止,我有:

SELECT TABLE_NAME, COLUMN_NAME FROM user_tab_columns WHERE table_name  = 'TEST_TBL' OR TABLE_NAME  ='TEST_TBL1' 
返回两个表的列。我在网上到处找,一点运气都没有。我试过做交叉加入,但运气不好


如果有人能为我提供任何帮助,或者能为我指明正确的方向,我将不胜感激

以获取不同的列

SELECT TABLE_NAME, COLUMN_NAME FROM user_tab_columns 
where table_name  = 'Table1' AND COLUMN_NAME NOT IN ( SELECT COLUMN_NAME  FROM USER_TAB_COLUMNS WHERE TABLE_NAME='table2') 
UNION
SELECT TABLE_NAME, COLUMN_NAME FROM user_tab_columns 
where table_name  = 'table2' AND COLUMN_NAME NOT IN ( SELECT COLUMN_NAME  FROM USER_TAB_COLUMNS WHERE TABLE_NAME='table1');