[Résolu][oracle][SQL] ignoré les doublons lors d'un insert??
	
	
		bonjour, je vais une requete du style: 
insert into TABLE1 (col1,col2,col3) select DISTINCT col1,col2,col3 from TABLE2
mais la requete renvoie a chaque PK violation, unique constraint violated 
(Table1 à une clé primaire).
Comment faire pour que ne pas inséré ses doublons (les ignoré), et continué le insert?
J'ai essayé un Exceptions INTO lors de la création de la contrainte PK, mais ça ne marche pas :-(
	 
	
	
	
		Passer par un curseur (pas top)
	
	
		Par un curseur c'est plus lisible, mais plus long
	Code:
	
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21
   | DECLARE 
CURSOR c IS 
SELECT DISTINCT col1,col2,col3 
FROM TABLE2;
 
BEGIN
 
FOR r IN c LOOP
 BEGIN
  INSERT INTO TABLE1 (col1,col2,col3)
  VALUES (r.col1, r.col2, r.col3)
 EXCEPTION
-- On catch l'erreur PK violation 
 WHEN DUP_VAL_ON_INDEX THEN NULL;
 END;
 
END LOOP;
 
COMMIT;
 
END;  |