Ou comment mettre a jour des données d’une base sur une autre base oracle (ou un autre schéma)… Cas qui arrive assez fréquemment sur les environnements de production, de test/recette, de développement et d’intégration.
Toad est un formidable outil pour tous ce qui touche la base de données. Il permet entre autre d’utiliser une panoplie de raccourcis très pratiques.
Voici la liste des possibilités fourni par Toad :
|
|
Aujourd'hui le MERGE Statement :
Préambule : Je veux mettre a jour mes données d’une table de l’environnement de production sur l’environnement de Test (sans truncate, drop ou autre)Requête sur l’environnement de PROD
select * from NATIONALITE where rownum < 2
Requête générée par notre ami Toad :
- Génération du mot clé MERGE
- Utilisation d’une requete ‘Seclect’ fictive
- Comparaison d’égalité grace a la clé primaire (PK, primary key)
- Si Ok alors réalisation d’un UPDATE
- Si NOk alors réalisation d’un INSERT
MERGE INTO NATIONALITE A USING (SELECT 'YUG' as "NATIONALITE_ID", 'YOUGOSLAVE' as "NATIONALITE_LIBELLE" FROM DUAL) B ON (A.NATIONALITE_ID = B.NATIONALITE_ID) WHEN NOT MATCHED THEN INSERT ( NATIONALITE_ID, NATIONALITE_LIBELLE) VALUES ( B.NATIONALITE_ID, B.NATIONALITE_LIBELLE) WHEN MATCHED THEN UPDATE SET A.NATIONALITE_LIBELLE = B.NATIONALITE_LIBELLE; COMMIT;C’est tout simple avec Toad, cela facilite grandement la tache sur ce genre d’opération. (Pour le coup, un truncate, et Insert Statement aurait bien également bien fonctionner)
Aucun commentaire:
Enregistrer un commentaire