两个思路,效率差别很大.同是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
)