Actualizaciones basadas en consultas

8i | 9i | 10g | 11g | 12c | 13c | 18c | 19c | 21c | Misc | PL / SQL | SQL | RAC | WebLogic | Linux

Inicio «Artículos» Misceláneos «aquí

Este artículo describe cómo se puede actualizar una tabla usando datos de otra tabla.

  • Configuración
  • Método de subconsulta
  • Método de vista en línea
  • Método de declaración MERGE

Artículos relacionados.

  • Declaración MERGE

Configuración

La tabla DEST_TAB contiene 10,000 filas. La contiene 5000 filas, cada una de las cuales tiene un valor de clave coincidente con una fila de la tabla DEST_TAB, pero datos diferentes en la CODE y DESCRIPTION columnas.

En este punto no podemos ver ninguno de los valores en el DESCRIPTION columna de la DEST_TAB tabla contiene la palabra «Actualizado».

SELECT COUNT(*)FROM dest_tabWHERE description LIKE "Updated%"; COUNT(*)---------- 0SQL>

El objetivo es actualizar el filas en la tabla DEST_TAB con los datos de la tabla SOURCE_TAB.

Método de subconsulta

T La primera opción es realizar una actualización de la tabla DEST_TAB usando una subconsulta para extraer los datos correctos de la tabla SOURCE_TAB. Observe el predicado EXISTS para excluir filas de la tabla DEST_TAB sin filas coincidentes en la SOURCE_TAB mesa. Sin esto, las filas no coincidentes tendrán sus valores establecidos en NULL.

El plan de ejecución para el volumen de datos actual se muestra a continuación.

Si la carga de trabajo es lo suficientemente grande y el servidor puede hacer frente a la carga de trabajo adicional, la PARALLEL sugerencia se puede utilizar para hacer que esto se ejecute en paralelo.

Método de vista en línea

La segunda opción es unir las dos tablas como una vista en línea y basar la actualización en eso.

El plan de ejecución para el volumen de datos actual se muestra a continuación.

Si la carga de trabajo es lo suficientemente grande y el servidor puede hacer frente a la carga de trabajo adicional, la PARALLEL pista se puede utilizar para hacer que esto se ejecute en paralelo.

El número de filas actualizadas se puede modificar agregando una WHERE cláusula para la vista en línea o la declaración de actualización principal.

  • Declaración MERGE

Espero que esto ayuda. Saludos Tim …

Volver al principio.

Deja una respuesta

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