Oracle MERGE (Español)

Resumen: en este tutorial, aprenderá a usar la declaración Oracle MERGE para realizar una actualización o inserción datos basados en una condición especificada.

Introducción a la sentencia MERGE de Oracle

La sentencia MERGE de Oracle selecciona datos de una o más tablas de origen y lo actualiza o lo inserta en una tabla de destino. La instrucción MERGE le permite especificar una condición para determinar si actualizar o insertar datos en la tabla de destino.

Lo siguiente ilustra la sintaxis de Oracle MERGE declaración:

Examinemos la MERGE declaración en detalle:

Primero, especifique la tabla de destino (target_table) que desea actualizar o insertar en la cláusula INTO.

En segundo lugar, especifique la fuente de datos (source_table) que se actualizará o insertará en la cláusula USING.

En tercer lugar, especifique la condición de búsqueda según la cual la operación de combinación se actualiza o inserta en la cláusula ON.

Para cada fila de la tabla de destino, Oracle evalúa la condición de búsqueda:

  • Si el resultado es verdadero, Oracle actualiza la fila con los datos correspondientes de la tabla fuente.
  • En caso de que el resultado sea falso para una y filas, luego Oracle inserta la fila correspondiente de la tabla de origen en la tabla de destino.

La instrucción MERGE se vuelve conveniente cuando desea combinar varias instrucciones INSERT, UPDATE y DELETE en una sola operación.

Debido a que MERGE es una declaración determinista, no puede actualizar la misma fila de la tabla de destino varias veces en la misma MERGE declaración .

Puede agregar una cláusula DELETE WHERE opcional a la cláusula MATCHED para limpiar después de una operación de fusión. La cláusula DELETE elimina solo las filas de la tabla de destino que coinciden con ON y DELETE WHERE cláusulas.

Requisitos previos de Oracle MERGE

Para ejecutar la instrucción MERGE, debe tener la INSERT y UPDATE en las tablas de origen. Si usa la cláusula DELETE, también debe tener el privilegio de objeto DELETE en la tabla de destino.

Oracle Ejemplo de MERGE

Supongamos que tenemos dos tablas: members y member_staging.

Nosotros inserte una nueva fila en la tabla members siempre que tengamos un nuevo miembro. Luego, los datos de la tabla members se fusionan con los datos de la tabla member_staging.

Las siguientes declaraciones cree las tablas members y member_staging:

Las siguientes INSERT Las declaraciones insertan datos de muestra en las tablas members y member_staging:

Al actualizar los datos de la members tabla a member_staging tabla, debemos realizar las siguientes acciones:

  • Actualizamos las filas con id de miembro 1, 3 , 4 y 6 porque el rango o el apellido de estos miembros en estas tablas son diferentes.
  • Insertamos las filas con el ID de miembro 7 a 10 porque estas filas existen en el members pero no en la member_staging tabla.

En total, se deben combinar 8 filas.

El siguiente ing es la MERGE sentencia que realiza todas estas acciones de una sola vez.

La sentencia merge compara cada fila en el members con cada fila en la member_staging tabla según los valores de las member_id columnas (consulte la ON cláusula anterior).

Si los valores en member_id columnas de ambas tablas son iguales, la MERGE actualiza el nombre, apellido y rango de la tabla members a la tabla member_staging solo si los valores de first Las columnas de nombre, apellido o rango de ambas tablas son diferentes.

De lo contrario, inserta la fila de la tabla members en la member_staging tabla.

Oracle devolvió 8 filas fusionadas como se esperaba.

En este tutorial, ha aprendido a utilizar Oracle MERGE para actualizar o insertar datos basado en una condición específica.

  • ¿Fue útil este tutorial?
  • SíNo

Leave a Reply

Deja una respuesta

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *