我在两个oracle数据库中有相同的表。一个是临时数据库,它将记录加载到主数据库中。我想通过登台表查看主记录是否没有变化。如果没有则删除它。我怎么能这样做?
答案 0 :(得分:0)
这样的事情应该有效
delete from stagingtable
where id in
(select id
from stagingtable st join productiontable pt on st.id = pt.id
and st.nextfield = pt.nextfield
etc
)
答案 1 :(得分:0)
要获得某些内容发生变化的内容,您可以使用:
SELECT * FROM "staging_table"
MINUS
SELECT * FROM "table";
因此,假设该表具有主键,那么您可以执行
DELETE FROM "table"
WHERE primary_key_column
NOT IN
( SELECT primary_key_column
FROM (
SELECT * FROM "staging_table"
MINUS
SELECT * FROM "table"
)
);