MERGE WHEN NOT MATCHED en une seule instruction ?
Bonjour,
Je souhaite insérer dans une tableA vide [colonne_A1, colonne_A2, colonne_A3] les valeurs d'une tableB [colonne_B1, colonne_B2, colonne_B3] uniquement sur une inégalité des 2 premières colonnes de chaque table
J'arrive au résultat sans souci :
- soit avec un
Code:
1 2 3 4 5 6 7 8 9
|
merge into tableA a
using(
select colonne_B1, colonne_B2, colonne_B3
from tableB
) sr (on sr.colonne_B1 = a.colonne_A1 and sr.colonne_B2 = a.colonne_B2)
when not matched then
insert (a.colonne_A1, a.colonne_A2, a.colonne_A3)
values(sr.colonne_B1, sr.colonne_B2, sr.colonne_B3) |
- soit avec un index unique sur colonne_A1, colonne_A2 et une redirection des doublons de clé vers LOG_ERROR
- soit avec un index unique et un hint ignore_row_on_dupkey_index
La question que je me pose est : y a-t'il un moyen de passer en une seule expression cet insert s'il n'y a aucune clé sur les tables ?
Merci si vous avez une idée :-)