Altova MapForce 2023 Professional Edition

Pour certains mappages qui mettent à jour et insèrent des données dans une table de base de données (voir aussi Action "Mettre à jour si... Insérer Rest"), MapForce génère des instructions MERGE à exécuter par rapport à la base de données au moment de la marche du mappage. Le moteur d'exécution n'est pas forcément MapForce, voir Exécuter des mappages qui modifient des bases de données.

 

Les instructions MERGE sont pris en charge par les types de base de données suivantes :

 

Serveur SQL 2008 et plus

Oracle

DB2

Firebird

 

Les instructions MERGE réduisent le nombre d'appels de serveur de base de données, puisqu'elles combine les instructions INSERT et UPDATE en un. De même, en cas d'instructions MERGE, la vérification de cohérence est effectuée par la base de données.

 

Pour voir si le mappage exécutera des instructions MERGE de base de données lors de la marche (contrairement à l'application d'une combinaison des instructions INSERT et UPDATE) :

 

1.Créer un mappage qui utilise une action Mettre à jour si... ainsi que Insérer Rest. Pour un exemple, voir Action "Mettre à jour si... Insérer Rest".

2.Consulter le mappage, en cliquant l'onglet Sortie.

 

Si MERGE est pris en charge par le type de base de données, le script SQL généré contient des instructions MERGE, par exemple :

mf_db_merge_08

Si MERGE n'est pas pris en charge par le type de base de données, le script SQL généré contient uniquement des instructions UPDATE. Aucune instruction INSERT n'est visible pour une préconsultation, puisque ceux-ci doivent être exécutés uniquement si la condition Mettre à jour si... n'est pas satisfaite (et cela n'est pas connue avant l'exécution de mappage).

 

Notes

MapForce crée automatiquement des instructions MERGE lorsqu'il détecte un type de base de données pris en charge ; il n'est pas possible d'influer manuellement si MapForce doit créer une instruction MERGE.

Si vous mettez à jour plusieurs tables ayant des relations parent-enfant, les fusions sont créée uniquement pour les tables "leaf". Une table "leaf" est la table enfant la plus basse qui est mappée. Par exemple, dans le mappage ci-dessous, les actions Update If... Insert Rest... ont été définies pour la table Users et la table Addresses. Néanmoins, les instructions MERGE seront uniquement générées pour la table leaf, Addresses. La table parent, Users, recevra les instructions UPDATE ou INSERT au lieu de MERGE.

mf_db_merge_07

avec des instructions MERGE, l'option "Bulk Transfer" (voir Insertions Bulk (MapForce Server) est prise en charge uniquement pour des connexions de base de données ODBC et JDBC.

 

© 2017-2023 Altova GmbH