registros (UPDATE) cuando la condición se cumple, o insertar registros (INSERT) cuando dicha condición no se cumple.
Las ventajas de la sentencia SQL MERGE son claras:
- Permite con una misma sentencia realizar un UPDATE si el registro existe, o un INSERT si se trata de un nuevo registro.
- La sentencia puede paralelizarse de forma transparente.
- Se evita la necesidad de realizar actualizaciones múltiples.
- Es especialmente útil para realizar operaciones en masa (Por ejemplo en aplicaciones data warehousing).
- El rendimiento de la base de datos mejora ya que se necesitan menos sentencias SQL para realizar las mismas operaciones, también se necesitan menos accesos a las tablas fuente.
- Estructura de la tabla HR.EMPLOYEES
EMPLOYEE_ID NUMBER PRIMARY KEY
FIRST_NAME VARCHAR2(30)
LAST_NAME VARCHAR2(30)
HIRE_DATE DATE
- Estructura de la tabla HR.NEW_EMPLOYEES
EMPLOYEE_ID NUMBER PRIMARY KEY
NAME VARCHAR2(65)
- Entonces si queremos insertar datos en la tabla HR.NEW_EMPLOYEES con datos provenientes de la tabla HR.EMPLOYEES, utilizando la sentencia MERGE, sería de la siguiente forma:
MERGE INTO HR.NEW_EMPLOYEES C
USING HR.EMPLOYEE E
ON (C.EMPLOYEE_ID=E.EMPLOYEE_ID)
WHEN MATCHED THEN
UPDATE SET
C.NAME=E.FIRST_NAME||','||E.LAST_NAME
WHEN NOT MATCHED THEN
INSERT VALUES (E.EMPLOYEE_ID,E.FIRST_NAME||','||E.LAST_NAME)
No hay comentarios:
Publicar un comentario