/*Merge into 详细介绍

MERGE语句是Oracle9i新增的语法,用来合并UPDATE和INSERT语句。

通过MERGE语句,根据一张表或子查询的连接条件对另外一张表进行查询,

连接条件匹配上的进行UPDATE,无法匹配的执行INSERT。

这个语法仅需要一次全表扫描就完成了全部工作,执行效率要高于INSERT+UPDATE。 

*/

/*语法:

MERGE [INTO [schema .] table [t_alias] 

USING [schema .] { table | view | subquery } [t_alias] 

ON ( condition ) 

WHEN MATCHED THEN merge_update_clause 

WHEN NOT MATCHED THEN merge_insert_clause;

*/




1 MERGE INTO T_PRODUCT t
2 USING T_PRODUCT_TEMP u
3 ON ( u.id=t.id)
4 WHEN MATCHED THEN
5 UPDATE SET t.name = u.name,t.orderid = u.orderid,
6 t.descr = u.descr
7 --delete where u.id=1
8 WHEN NOT MATCHED THEN
9 INSERT (id, name, orderid, descr) VALUES(u.id, u.name,u.orderid, u.descr)
10 --WHEN NOT MATCHED BY u and t.id=u.id THEN
11 --Delete;



新特性的功能,加快的复制表数据的性能,一次性的读取,可以快速把数据复制到目标表中,其中在update中还支持delete语句的写法

可过过滤些不需要更新的数据。速度还是很不错的。