Altova MapForce 2023 Enterprise Edition

Für bestimmte Mappings, die sowohl Daten in eine Datenbanktabelle einfügen als auch Daten darin aktualisieren (siehe auch Die Aktion "Aktualisieren, wenn...Rest einfügen"), generiert MapForce MERGE-Anweisungen, die zur Mapping-Laufzeit an der Datenbank ausgeführt werden. Als Ausführungsprozessor muss nicht notwendigerweise MapForce verwendet werden. Siehe Ausführen von Mappings, die Datenbanken modifizieren.

 

MERGE-Anweisungen werden für die folgenden Datenbanktypen unterstützt:

 

SQL Server 2008 und höher

Oracle

DB2

Firebird

 

Mittels MERGE-Anweisungen kann die Anzahl der Datenbankserveraufrufe reduziert werden, da in diesen Anweisungen die INSERT- und die UPDATE-Anweisung in einer Anweisung kombiniert sind. Außerdem wird die Konsistenzprüfung bei MERGE-Anweisungen von der Datenbank durchgeführt.

 

Um zu sehen, ob das Mapping zur Laufzeit (anstelle einer Kombination von INSERT- und UPDATE-Anweisungen) MERGE-Datenbankanweisungen ausführt, gehen Sie folgendermaßen vor:

 

1.Erstellen Sie ein Mapping, in dem sowohl eine Aktualisieren, wenn.. .als auch eine Rest einfügen-Aktion verwendet wird. Ein Beispiel dazu finden Sie unter Die Aktion "Aktualisieren, wenn...Rest einfügen".

2.Klicken Sie auf das Fenster Ausgabe, um eine Vorschau auf das Mapping zu sehen.

 

Wenn MERGE vom Datenbanktyp unterstützt wird, enthält das generierten SQL-Skript MERGE-Anweisungen, wie z.B. die folgende:

mf_db_merge_08

 

Wenn MERGE vom Datenbanktyp nicht unterstützt wird, enthält das generierte SQL-Skript nur UPDATE-Anweisungen. In der Vorschau sind keine INSERT-Anweisungen sichtbar, da diese nur ausgeführt werden, wenn die Aktualisieren, wenn...-Bedingung erfüllt wird (und dies vor der Ausführung des Mappings noch nicht bekannt ist).

 

Anmerkungen

MapForce erstellt automatisch MERGE-Anweisungen, wenn es einen unterstützten Datenbanktyp erkennt. Sie können manuell keinen Einfluss darauf nehmen, ob MapForce eine MERGE-Anweisung erstellen soll.

Wenn Sie mehrere Tabellen mit Parent-Child-Beziehungen aktualisieren, werden Merges nur für "leaf"-Tabellen erstellt. Eine "leaf"-Tabelle ist die am tiefsten verschachtelte gemappte Child-Tabelle. So wurden z.B. im Mapping unten sowohl für die Tabelle Users als auch für Addresses Aktualisieren, wenn... Rest einfügen... Aktionen definiert. MERGE-Anweisungen werden jedoch nur für die leaf-Tabelle Addresses generiert. Die übergeordnete Tabelle Users erhält anstelle von MERGE-Anweisungen UPDATE- oder INSERT-Anweisungen.

mf_db_merge_07

Bei MERGE-Anweisungen wird die "Bulk Transfer"-Option (siehe Bulk-Einfügungen (MapForce Server) nur für ODBC- und JDBC-Datenbankverbindungen unterstützt.

© 2017-2023 Altova GmbH