我有兩個表在不同的數據庫中具有相同的列。這兩個表都有記錄。我想插入table1的table1的記錄,但我想忽略已經在表1中的那些記錄。以及我想將所有被忽略的記錄存儲在一個新表中。 例子:從一個表複製行到另一個,忽略遠程重複
create table dest
(id number primary key,
col1 varchar2(10));
create table src
(id number,
col1 varchar2(10));
insert into src values(1,'ABC');
insert into src values(2,'GHB');
insert into src values(3,'DUP');
insert into src values(3,'DUP');
commit;
merge into dest
using
(select id,col1 from src) src on(dest.id=src.id)
when not matched then
insert values(src.id,src.col1)
when matched
then update set dest.col1=src.col1;
錯誤報告 - SQL錯誤:ORA-00001:唯一約束(SCOTT.SYS_C0010807)違反 00001 00000 - 「唯一約束(%s%S)違反」 *原因: UPDATE或INSERT語句試圖插入重複鍵。 對於在DBMS MAC模式下配置的Trusted Oracle,如果重複條目存在於不同級別,則可能會看到此消息爲 。 *操作:刪除唯一限制或不要插入密鑰。
看一看[合併](https://docs.oracle.com/cd/B28359_01/server.111/b28286/statements_9016。 htm) – Aleksej