Gestion des exceptions dans sql*loader

Fermé
sabdoul - 6 mars 2013 à 15:47
GMV Messages postés 68 Date d'inscription samedi 6 août 2011 Statut Membre Dernière intervention 2 novembre 2013 - 21 avril 2013 à 15:06
Bonjour, j'importe des données d'un fichier plat dans une table contenant une contrainte d'unicité sur plusieurs champs. cela est fait volontairement car je veux éviter les insertions de doublure dans la table.
Ainsi sql loader génère l'erreur ORA-00001: violation de contrainte unique dans un fichier log.
un fichier batch contient ma commande sql loader qui est exécuté plusieurs fois a travers une boucle qui récupère les noms de fichiers et ensuite les placent dans la partie data de la commande sqlldr car il y'a plusieurs fichiers plat avec des noms différents a importer.
voici le code

FOR %%A IN (fichier*.CSV) Do (CD C:\Users\rep
sqlldr userid=cdci/cdci control=controlAchat_Produit.txt DATA='C:\Users\Desktop\import\%%A' log='log%%A.txt' bad='bad%%A.txt' discard='disard%%A' direct=y errors=500000 SKIP=1
)
IF "%ERRORLEVEL%"=="0" (GOTO DEP) else (GOTO ERROR)

ma préoccupation est-il possible d'éviter la prise en compte de cette erreur uniquement car dans mon fichier batch j'utilise l'instruction IF "%ERRORLEVEL%"=="0" pour tester le code de sortie de la dernière commande sql loader si elle a été exécutée correctement pour aller dans une autre instruction a exécuter.

je m'explique étant donné que cette erreur est provoquée volontairement je veux éviter la prise en compte de cette erreur pour ne pas que la commande sqlldr renvoie une erreur a ERRORLEVEL.
ou encore existe-il un autre moyen de gérer ce cas dans le fichier batch.
merci de votre aide
A voir également:

2 réponses

Quester4 Messages postés 134 Date d'inscription mercredi 8 février 2012 Statut Membre Dernière intervention 18 juillet 2013 125
13 avril 2013 à 14:15
Salut,

C'est impossible, c'est du "tout ou rien".
Soit tu continues l'exécution du code sans te soucier de la présence d'erreurs, soit tu trouves un procédé alternatif. Plutôt que d'éviter les doublures tu peux les supprimer par exemple...

En espérant t'avoir éclairé,
Quester4
0
GMV Messages postés 68 Date d'inscription samedi 6 août 2011 Statut Membre Dernière intervention 2 novembre 2013
21 avril 2013 à 15:06
Bonjour

tout a fait, c'est du tout ou rien.
Tu peux néanmoins ajouter le fichier de rejet qui contiendra les lignes rejetées
0