Bonjour,

Avec le même sqlloader, sur la même base Oracle (10g) j'observe deux prises en compte différentes du paramètre "errors"
  • Cas 1 : le fichier en entrée est avec séparateurs "|"
  • Cas 2 : le fichier en entrée est un fichier plat (longueurs fixes)

Dans les deux cas :
  • le paramètre errors dans le fichier .par est à 10
  • les deux fichiers (cas 1 ou 2) contiennent moins de 10 erreurs. Une erreur de longueur supérieure à celle attendue pour le cas 1 et un format numérique incorrect (de l'alpha) dans le cas 2


Le comportement attendu est que les deux ctl chargent les fichiers en entrée dans les tables cibles et tracent les erreurs dans la logs.
Mais les traitements ne doivent pas planter car on a moins de 10 erreurs.

Le comportement observé est que le fichier du cas 1 (séparateurs) est bien chargé en table avec les lignes en erreur écartées dans le fichier .bad.
Dans le cas 2, le traitement plante. Les enregistrements en erreur sont bien copiés dans le fichier bad.

J'ai essayé de basculer
Code : Sélectionner tout - Visualiser dans une fenêtre à part
OPTIONS (DIRECT=TRUE) UNRECOVERABLE LOAD DATA TRUNCATE
en
Code : Sélectionner tout - Visualiser dans une fenêtre à part
OPTIONS (DIRECT=FALSE) RECOVERABLE LOAD DATA TRUNCATE
sans succès

Est-ce que quelqu'un aurait une piste ou une hypothèse ?
Merci d'avance.