-
Sql Loader
Bonjour,
j'ai un programme Sql*Loader, pour charger deux colonnes dans une table. Ca ressemble à ça:
LOAD DATA
APPEND
INTO TABLE TABLE_PROC
FIELDS TERMINATED BY ';'
( CODE_PROC CHAR,
T3_CODE INTEGER EXTERNAL )
Mais quand dans mon fichier à charger, j'ai une ligne avec 3 champs, par exemple :
Toto;15;autre
les champs "Toto" et "15" sont chargés dans la table sans générer d'erreur, et il ne prend pas en compte le 3ème champ ("autre") de la ligne. Moi, j'aimerais bien qu'il le prenne en compte et qu'il me génère une erreur!!
Y-a t'il une option à ajouter dans mon fichier ctl ou lors de l'appel à sqlloader pour gérer ce genre d'erreur?
Merci,
Soaz.
-
Bonjour c'est normal au vue de ton fichier control tu ne paramétre que les deux premiers champs .
Pourquoi veux qu'il te génere une erreur ?
Jaouad
-
Je veux qu'il me génère une erreur, car je ne veux charger que 2 champs dans ma table. Et je veux controler les erreurs de syntaxe dans mon fichier de données;
Par exemple, si une ligne ne comporte qu'un seul champ, il me génère une erreur, c'est normal, il en attend un dexuième pour charger dans la table. Pour une ligne comportant 3 champs, je voudrais qu'il me dise "Attention, erreur dans le fichier de données, il y avait 3 champs, alors que je n'en attends que deux." Ou quelque chose du genre, pour que je sache qu'il y a des lignes incorrectes.
-
Je ne sais pas comment le faire dans SQLLoader mais tu pourrais passer par une table intermédiaire sous Oracle.
-
C est pas possible car rien ne peut t'interdire d'avoir plus de champs que ce que tu veux bien insérer.
Le fichier de contrôle est la pour controler le chargement et dire quelle donnée va dans quelles champs
Ps : si tu veux quand même charger un fichier avec des lignes ayant une colonne alors que ta table en a plusieurs :
Citation:
TRAILING NULLCOLS
Un tutoriel va bientôt sortir pour Sqlloader :wink:
jaouad