oracle merge用法
时间: 2023-07-12 12:08:38 浏览: 47
Oracle MERGE 是一种用于将数据合并到表中的 SQL 语句。它可以根据指定的条件判断数据是否存在于目标表中,如果存在则更新数据,如果不存在则插入新数据。
下面是 Oracle MERGE 语句的基本语法:
```
MERGE INTO target_table USING source_table ON (condition)
WHEN MATCHED THEN
UPDATE SET column1 = value1 [, column2 = value2 ...]
WHEN NOT MATCHED THEN
INSERT (column1 [, column2 ...]) VALUES (value1 [, value2 ...]);
```
其中,target_table 是需要更新或插入数据的目标表,source_table 是包含待合并数据的源表,condition 是用于匹配目标表和源表的条件,UPDATE SET 子句用于更新目标表中的数据,INSERT 子句用于向目标表中插入新数据。
下面是一个示例,假设有一个员工表 emp 和一个待合并的员工数据表 emp_new,需要将 emp_new 中的数据合并到 emp 表中:
```
MERGE INTO emp
USING emp_new
ON (emp.employee_id = emp_new.employee_id)
WHEN MATCHED THEN
UPDATE SET emp.salary = emp_new.salary
WHEN NOT MATCHED THEN
INSERT (employee_id, salary) VALUES (emp_new.employee_id, emp_new.salary);
```
在上面的示例中,如果 emp 表中已经存在了 employee_id 相同的记录,则会将该记录的 salary 更新为 emp_new 表中的对应值;否则会将 emp_new 表中的记录插入到 emp 表中。