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.