1:merge指令
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;
MERGE INTO table_name alias1
USING (table|view|sub_query) alias2
ON (join condition)
WHEN MATCHED THEN
UPDATE table_name
SET col1 = col_val1,
col2 = col2_val
WHERE CONDITIONS
[DELETE WHERE (CONTIONS)]
WHEN NOT MATCHED THEN
INSERT (column_list) VALUES (column_values);
注意事项:
1
MERGE语句是Oracle9i新增的语法,用来合并UPDATE和INSERT语句。
Oracle 10g中的MERGE提供了在执行数据操作时清除行的选项.
2UPDATE子句后面可以跟DELETE子句来去除一些不需要的行
delete只能和update配合,从而达到删除满足where条件的子句的纪录
3:
严格意义上讲,”在一个同时存在Insert和Update语法的Merge语句中,总共Insert/Update的记录数,就是Using语句中alias2的记录数。”