Mises à jour basées sur des requêtes
8i | 9i | 10g | 11g | 12c | 13c | 18c | 19c | 21c | Divers | PL / SQL | SQL | RAC | WebLogic | Linux
Accueil « Articles » Divers « Ici
Cet article décrit comment une table peut être mise à jour en utilisant les données dune autre table.
- Configuration
- Méthode de sous-requête
- Méthode daffichage en ligne
- Méthode de linstruction MERGE
Articles connexes.
- Instruction MERGE
Configuration
Le tableau DEST_TAB
contient 10 000 lignes. Le contient 5 000 lignes, chacune ayant une valeur de clé correspondante avec une ligne de la table DEST_TAB
, mais des données différentes dans le et DESCRIPTION
.
À ce stade, nous ne pouvons voir aucune des valeurs dans DESCRIPTION
colonne de la table DEST_TAB
contient le mot « Updated ».
SELECT COUNT(*)FROM dest_tabWHERE description LIKE "Updated%"; COUNT(*)---------- 0SQL>
Le but est de mettre à jour le lignes de la table DEST_TAB
avec les données de la table SOURCE_TAB
.
Méthode de sous-requête
T La première option est de faire une mise à jour de la table DEST_TAB
en utilisant une sous-requête pour extraire les données correctes de la table SOURCE_TAB
. Notez le prédicat EXISTS
pour exclure les lignes de la table DEST_TAB
sans ligne correspondante dans le SOURCE_TAB
table. Sans cela, les lignes sans correspondance auront leur valeur NULL.
Le plan dexécution du volume de données actuel est indiqué ci-dessous.
Si la charge de travail est suffisamment importante et que le serveur peut faire face à la charge de travail supplémentaire, le conseil PARALLEL
peut être utilisé pour effectuer cette exécution en parallèle.
Méthode daffichage en ligne
La deuxième option est de joindre les deux tables en tant que vue en ligne et de baser la mise à jour sur cela.
Le plan dexécution pour le volume de données actuel est indiqué ci-dessous.
Si la charge de travail est suffisamment importante et le serveur peut faire face à la charge de travail supplémentaire, le conseil PARALLEL
peut être utilisé pour effectuer cette exécution en parallèle.
Le nombre de lignes mises à jour peut être modifié en ajoutant une clause WHERE
à la vue en ligne ou à linstruction de mise à jour principale.
- Instruction MERGE
Jespère que aide. Cordialement Tim …
Retour en haut.