Gestion des exceptions dans sql*loader
sabdoul
-
GMV Messages postés 68 Date d'inscription Statut Membre Dernière intervention -
GMV Messages postés 68 Date d'inscription Statut Membre Dernière intervention -
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
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:
- Gestion des exceptions dans sql*loader
- Logiciel gestion locative gratuit excel - Télécharger - Comptabilité & Facturation
- Windows loader - Télécharger - Gestion de fichiers
- Logiciel gestion photo gratuit - Guide
- Gestion des fichiers - Télécharger - Gestion de fichiers
- Gestion autorisation application android - Guide