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
- soit avec un index unique sur colonne_A1, colonne_A2 et une redirection des doublons de clé vers LOG_ERROR
Code : Sélectionner tout - Visualiser dans une fenêtre à part
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 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 :-)
Partager