PL / SQL插入表中减去另一个表但同时插入另一个列

时间:2014-05-26 04:03:34

标签: sql plsql oracle11g oracle-sqldeveloper

我有一个小问题,比如我有一个包含5列的表格,我使用{strong>从另一个包含4列的表中插入到该表中

我有问题插入(null)或' '当我说那句话时,它进入第5列MINUS(我正在使用的表没有第5列)

这是我用于插入语句

的代码
invalid number of columns selected

此代码有效,如果我没有创建第5列,它会复制我需要的任何内容,是否有办法在my_table中的第5列旁边的另一个表中插入我的表值?

谢谢

2 个答案:

答案 0 :(得分:1)

假设我理解了您的问题,您希望选择that_table中的所有记录,并将这些记录插入my_table,其中前4列不存在,使用{{1}作为第5列的值?如果是这样,您可以使用null

not exists

您还应该能够使用insert into my_table (col1, col2, col3, col4, col5) select col1, col2, col3, col4, null from that_table tt where not exists ( select 1 from my_table mt where tt.col1 = mt.col1 and tt.col2 = mt.col2 and tt.col3 = mt.col3 and tt.col4 = mt.col4 ) ,只需确保您拥有相同数量的列和相同的数据类型:

Minus

答案 1 :(得分:0)

如果您只想插入所选列,请尝试以下操作:

insert into my_table (col1, col2, col3, col4, col5) select col1, col2, col3, col4, null from that_table;

您可以在http://www.w3schools.com/sql/sql_insert_into_select.asp

找到更多信息