Zum Inhalt springen

Inhalte von Datenbanktabellen “umladen” mit Insert … from (Select subquery)

Es gibt, z.B. im Zusammenhang mit globalen temporären Tabellen oft den Use Case Inhalte von Datenbanktabellen umzuladen. Dies könnte man natürlich über den “klassischen” Weg machen indem man die Daten selektiert und in eine interne Tabelle lädt und diese entsprechend in die andere Datenbanktabelle wegschreibt aber diesen Weg über den Applikationsserver braucht es gar nicht. Mit dem Befehl INSERT dbtab FROM ( SELECT subquery_clauses [UNION …] ) lassen sich die Einträge direkt umladen.

Die Tabelle ZZT_SFLIGHT ist eine einfache Kopie der Tabelle SFLIGHT.

INSERT zzt_sflight from ( SELECT CARRID, CONNID, FLDATE from sflight where carrid = 'AA' ).

SELECT * FROM zzt_sflight
       INTO TABLE @DATA(lt_result).
cl_demo_output=>display( lt_result ).
Nur die Einträge die in der SELECT-Anweisung spezifiziert sind wurden in die Tabelle ZZT_SFLIGHT übernommen.

Natürlich kann dies auch für zusammengesetzte Tabellen über JOIN verwendet werden indem die Erweiterung UNION zur Zusammenführung verwendet wird.

Beispiel aus der SAP-Dokumentation:

INSERT join_table  FROM ( SELECT a,b,c,d FROM demo_join1
                            UNION
                              SELECT d,e,f,g FROM demo_join2 ).
Facebooktwitterpinterestlinkedinmail
Published inABAPSAP Entwicklung

Sei der Erste der einen Kommentar abgibt

Schreibe einen Kommentar

Deine E-Mail-Adresse wird nicht veröffentlicht. Erforderliche Felder sind mit * markiert