[Oracle] combiner un update et un insert
Bonjour,
Environnement SQLPlus d'Oracle.
Une table 'DESTINATION'(1) est remplit avec les données de deux autres tables 'CONT1'(2), 'CONT2'(3) la clé primaire étant USER_ID dans ces 3 tables. De plus le nombre de colonne entre ces 3 tables sont totalement différents
=> (1) a 14 colonnes issus de (2) et (3)
=> (2) a 7 colonnes
=> (3) a 12 colonnes
Cette première opération est réussie sans problème.
je souhaite faire un update des données de (1) dans (2) pour les données existantes
Code:
1 2 3 4 5 6 7 8
|
UPDATE USER_TST
SET (USER_TST.USER_ALIAS) =
(
SELECT USER.USER_ALIAS FROM USER
WHERE USER_TST.USER_ID = USER.USER_ID
)
WHERE (USER_TST.USER_ID) IN (SELECT USER.USER_ID FROM USER); |
=> Cela marche nickel, je fait la meme chose pour la table (3)
Voici la problématique :
Par contre des lignes supplémentaire sont présents dans (1) et inexistant dans (2) et (3), donc l'update ne les prends pas en compte. D'où la problématique
=> comment faire, dans l'idéal en une seule opération, un update/insert qui met à jour les données existantes de (1) dans (2), (3) d'une part, puis rajoute les nouvelles lignes de (1) dans (2) et (3) d'autre part.
ps : pour simplifier le problème on peut uniquement utiliser les tables (1) et (2).
J'espère avoir était assez claire sur mon problème et que vous allez savoir m'aider à le résoudre.
Merci