Benutzer mit den meisten Antworten
MERGE ähnlicher Befehl in ORACLE 10g DB Abfrage

Frage
-
Hallo,
ich verwende für eine SSIS Abfrage den Attunity Konnektor und habe als SQL Befehl eingetragen:
SELECT nummer, bez, name, gruppe, bem
FROM artikel
ORDER BY nummer ASCund schreibe anschließend das Ergebnis in eine Tabelle (per SQL Ziel auf einen MS SQL Server 2008 R2).
Aus Performance Gründen möchte ich nun künftig nur noch die neuen, bzw. veränderten Datensätze in meine SQL Tabelle schreiben. Im Attunity Konnektor funktioniert allerdings der MERGE Befehl nicht.
Meine Frage: Weiss jemand wie der Befehl lautet? Vielen Dank für Eure Hilfe!
Gruß, Jürgen
Antworten
-
Den Connector kenne ich nicht.
Den merge-Befehl würde ich im SSIS so umsetzten:
- Einen Lookup-Task hinter die Quelle setzen
- die Outputs des Lookups entsprechend verteilen:
- die noch nicht vorhandenen zu einem OleDB-Ziel
- die vorhandenen zu einem update-Task- Als Antwort markiert juergen_ks Mittwoch, 17. August 2011 11:13
-
Hallo Jürgen,
1. Verbinde die ORACLE-Datenbank doch über Linked Server
2. Verwende das MERGE-Konstrukt (ab SQL Server 2008)
Mehr Informationen zu MERGE
http://msdn.microsoft.com/de-de/library/bb510625.aspx
Uwe Ricken
MCITP Database Administrator 2005
MCITP Database Administrator 2008
MCITS Microsoft SQL Server 2008, Database Development
db Berater GmbH
http://www-db-berater.de- Als Antwort markiert juergen_ks Mittwoch, 17. August 2011 11:13
Alle Antworten
-
Den Connector kenne ich nicht.
Den merge-Befehl würde ich im SSIS so umsetzten:
- Einen Lookup-Task hinter die Quelle setzen
- die Outputs des Lookups entsprechend verteilen:
- die noch nicht vorhandenen zu einem OleDB-Ziel
- die vorhandenen zu einem update-Task- Als Antwort markiert juergen_ks Mittwoch, 17. August 2011 11:13
-
Danke für den Vorschlag, den ich jetzt auch umsetzen werde. Allerdings habe ich mir überlegt, die Quelledaten aus der ORACLE Tabelle zunächst in eine temporäre Tabelle einzulesen, dann die MERGE Prozedur auszuführen. Oder gibt's noch eine elegantere Lösung?
-
Hallo Jürgen,
1. Verbinde die ORACLE-Datenbank doch über Linked Server
2. Verwende das MERGE-Konstrukt (ab SQL Server 2008)
Mehr Informationen zu MERGE
http://msdn.microsoft.com/de-de/library/bb510625.aspx
Uwe Ricken
MCITP Database Administrator 2005
MCITP Database Administrator 2008
MCITS Microsoft SQL Server 2008, Database Development
db Berater GmbH
http://www-db-berater.de- Als Antwort markiert juergen_ks Mittwoch, 17. August 2011 11:13