1

我对 PL SQL 很陌生,我遇到了一个问题。希望它不会太难解决,我只是把这一切都错了。我的问题是这样的:我有两个不同数量的列的表。我需要检查一下不同的列是什么,然后将它们添加到其中一个表中。例如:

表 1 有 1 列称为名称。

表 2 有 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' 

它返回两个表的列。我在互联网上到处都看不到运气。我试图做相交加入,但没有运气。

如果有人有任何帮助或可以指出我正确的方向,我将非常感激!

4

1 回答 1

0

获取不同的列

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');
于 2016-11-11T05:07:31.507 回答