Oracle在9i中引入了merge命令,通过这个 merge into
语句,能够在一个SQL语句中对一个表同时执行update和insert操作。当然是update还是insert得依据于你的指定的条件判断的,merge
into 可以实现用B表来更新A表数据,如果A表中有匹配的记录,则更新数据;没有匹配的记录,则把B表的记录插入A表。merge
命令可以从一个或多个数据源中选择行来update或insert到一个或多个表中。
一、merge函数语法
语法如下:
merge into [your table-name][rename your
table
here]
using ([write your query here] )[rename your
query-sql and using just like a table]
on ([condition here] and others
condition)when
mathed then [here you can execute some update sql or
something else ] when not mathed then
[execute something else
here]
二、在Oracle9i中使用示例
1、a表和b表比对匹配,进行更新和插入数据操作
merge into tmp_prod a
using tmp_prod_new b
on (a.product_id = b.product_id)
when matched then
update set a.pr