In MySQL verwenden wirOracle Alternative für MySQL REPLACE INTO
REPLACE INTO
einzufügen, wenn eine Zeile nicht existiert und zu aktualisieren, wenn es vorhanden ist.
Gibt es einen entsprechenden Befehl in Oracle?
In MySQL verwenden wirOracle Alternative für MySQL REPLACE INTO
REPLACE INTO
einzufügen, wenn eine Zeile nicht existiert und zu aktualisieren, wenn es vorhanden ist.
Gibt es einen entsprechenden Befehl in Oracle?
MERGE
INTO destTable d
USING (
SELECT *
FROM sourceTable
) s
ON (s.id = d.id)
WHEN NOT MATCHED THEN
INSERT (id, destCol1, destCol2)
VALUES (id, sourceCol1, sourceCol2)
WHEN MATCHED THEN
UPDATE
SET destCol1 = sourceCol1,
destCol2 = sourceCol2
Benötige ich eigentlich eine andere Tabelle, von der aus fusionieren? Oder gibt es eine Möglichkeit, die Daten in den Befehl aufzunehmen? – user123444555621
Um meine eigene Frage zu beantworten, denke ich, dass es mit 'dual' gemacht werden kann: http://www.idevelopment.info/data/Oracle/DBA_tips/SQL/SQL_5.shtml – user123444555621
Sie suchen etwas wie Merge
in Oracle
Verwenden
Merge Into myTable s
USING Select x from y;
Verwenden 'nicht INTO' in MySQL REPLACE, sondern verwenden' INSERT ... ON DUPLICATE KEY UPDATE'. – Quassnoi
siehe auch http://stackoverflow.com/questions/237327/oracle-how-to-upsert-update-or-insert-into-a-table/2692441#2692441 – user123444555621