salut a tous ,
je veux inserer des lignes dans une table et rejeté automatiqument les doublants , pour ne pas générer l'exception de la clé primaire
est ce qu'il ya une option dans le insert qui permet ca ?
salut a tous ,
je veux inserer des lignes dans une table et rejeté automatiqument les doublants , pour ne pas générer l'exception de la clé primaire
est ce qu'il ya une option dans le insert qui permet ca ?
Je te donne une réponse que j'ai trouvée dans ce forum
Imaginons que ta table s'appelle FACTUTRE
1) Tu crées une table qui contiendra les enregistrements erronés
Alter table Log_FACTURE(.....) à l'identique de FACTURE
2) Tu lances l'activations des logs sur cette table :
exec dbms_errlog.create_error_log('Log_Facture')
3) Tu fais tes inserts dans la table FACTURE de cette façon :
insert into t(x,y) values ('1','x') log errors reject limit unlimited
4) Tous les enregistrements erronés se trouveront dans err$_Log_FACTURE
select * from err$_Log_FACTURE
Pour cela,il faut que tu sois en 10gr2 au minimum
Merci.
LBO72
cette solution ne s'applique pas au cas présent il me semble... l'idéal c'est un peut-être :
Code : Sélectionner tout - Visualiser dans une fenêtre à part INSERT INTO latable SELECT... FROM ... WHERE NOT EXISTS (SELECT ... FROM latable ...)
ou sinon en PL/SQL, on peut catcher l'exception, à condition bien sur qu'il y ait une cle primaire definie
Je confirme la reponse d'orafrance.. not exist et not in sont les meilleures solution dans ce cas.. Et surtout on dit "doublons", et pas doublant..
Desole pour l'orthographe, mais il n'y a pas d'accent sur les claviers anglais..sniff...
Non, il veut pas générer cette exception car dans ce cas l'insert s'arrête (et rollbacke)Envoyé par tchoimars
More Code : More Bugs. Less Code : Less Bugs
Mon Blog PL/Sql : Fichier Zip / Image BMP / Lire sqliteDB / QRCode et Images PNG ou BMP
Envoyé par orafrance
il y a assez peu d'indication de l'auteur pour savoir quelle est la solution idéale.
Si l'auteur employe des
Alors log errors pourrait être d'un bon secours. Bien sûr il eût été mieux qu'il nous donne sa version
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4 insert into t(x,y) values ('1','x') log errors reject limit unlimited; insert into t(x,y) values ('2','x') log errors reject limit unlimited; insert into t(x,y) values ('2','x') log errors reject limit unlimited;
Attention log errors ne marche pas dans tous les cas. Par exemple, il faut que les contraintes soient IMMEDIATE
Vous avez un bloqueur de publicités installé.
Le Club Developpez.com n'affiche que des publicités IT, discrètes et non intrusives.
Afin que nous puissions continuer à vous fournir gratuitement du contenu de qualité, merci de nous soutenir en désactivant votre bloqueur de publicités sur Developpez.com.
Partager