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 : 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 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 :-)