首页 > 数据库 > Oracle > 同步一个表可能重复的数据到历史表
两个思路,效率差别很大.同是2万条记录.
1.用not in语句,耗时120s.
2.用oracle9i添加的minus语句,耗时7s.
[@more@]1.用not in 语句
insert into emp_table_his
select * from emp_table
where emp_no||nvl(emp_name,)||nvl(emp_salary,0) not in
( select emp_no||nvl(emp_name,)||nvl(emp_salary,0)
from emp_table_his)
emp_name,emp_salary考虑到可能为空的情况,emp_no为主键,不能为空.
2.用minus语句
insert into emp_table_his
(select emp_no,nvl(emp_name,),nvl(emp_salary,0) from emp_table
minus
select emp_no,nvl(emp_name,),nvl(emp_salary,0) from emp_table_his
)
来自 “ ITPUB博客 ” ,链接:https://blog.itpub.net/62484/viewspace-919367/ ,如需转载,请注明出处,否则将追究法律责任。