[英]How to transfer delta records from one table to another in oracle
我有一个带有属性的table t1
emp_joined_date,
emp_name,
emp_number.
我想将此表转移到另一个表t2(having same structure)
。
在第一次尝试期间,我将转移整个表,但是稍后我只想将delta records
从表t1 to t2
。
那么如何在单个查询中从表t1到t2插入多个记录(在oracle中)
那这个呢:
insert into t1
select * from t2
where emp_number not in
(select t2.emp_number from t2 join t1 on t1.emp_number = t2.emp_number) ;
如果您在t1
获得了新记录,并且只想在t2
插入那些记录,则可以使用它。 它会给你新的emp_number
insert into t2 (emp_joined_date,emp_name,emp_number)
select t1.emp_joined_date,t1.emp_name,t1.emp_number
from t1 left join t2
on t1.emp_number=t2.emp_number
where t2.emp_number is null
如果要基于时间插入记录,请使用此Use NVL函数,以便在首次运行时将复制所有内容。
insert into t2 (emp_joined_date,emp_name,emp_number)
select emp_joined_date,emp_name,emp_number from t1
where emp_joined_date >
nvl((select max(emp_joined_date) from t1),to_date('1900-01-01','YYYY-MM-DD'))
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.