Ich verwende eine INSERT ALL
-Anweisung in Oracle, um Daten in zwei verschiedene Tabellen einzufügen. Die Daten stammen eher von einer eher komplexen Unterabfrage als von einer VALUES
-Klausel.Auswählen von Spalten in Oracle INSERT ALL Anweisung
Mein Problem ist, dass ich alle die Spalten nicht einfügen möchte, die von der Unterabfrage in beide Tabellen zurückgegeben werden.
Als einfaches Beispiel: Angenommen, ich habe zwei Tabellen tab1
und tab2
jeweils drei Spalten col1
, col2
und col3
.
Angenommen, meine Unterabfrage gibt eine einzelne Zeile mit den Werten A
, B
und C
zurück.
Also, ich möchte A
, B
und C
in col1
eingefügt, col2
und col3
von tab1
jeweils, aber ich möchte, sagen wir, nur A
und C
in col1
und col3
von tab2
gehen.
Meine Aussage würde wie folgt aussehen:
INSERT ALL
INTO tab1
(col1, col2, col3)
INTO tab2
(col1, ?, col3)
FROM
(...
complex subquery which returns A, B, C
...
)
Gibt es eine Weise, die ich so etwas wie einen ‚Füllstoff‘ verwenden oder ‚Müll Spalte‘ mir zu erlauben, mein Ziel zu erreichen?
Gibt es eine Möglichkeit, es ohne die 'values' Klauseln zu tun? –
@Isaac, ohne die 'values'-Klauseln, woher weiß es, welche Spalten aus der Auswahl für jede Spalte in den Zieltabellen zuzuweisen sind? –