Bonjour,

Je souhaites charger une table via SQL Loader à condition que mon fichier soit bon. J'ai dans cette table un champ "dossier" défini en varchar2 de 10 caractères. dans le fichier que je charge j'ai une donnée devant aller dans le champ "dossier" faisant plus de 10 caractères.

J'ai précisé errors=0 dans ma commande. Bizarrement les données sont tout de même chargées, à l'exception de celle trop grande. Comment faire pour qu'auncun enregistrement ne soit inséré si l'un d'eux n'est pas valide ?

Voila un exemple de ce que je veux faire :

Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
 
Mon_fichier.csv contient
1111111111;123
2222222222;345
...
99999999999;456
Le dernier enregistrement contient plus de 1à caractère dans le premier champ je souhaites donc qu'auncune action ne soit faite ou que les enregistrement venant d'être insérés soient enlevé.

Voici ma commande
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
 
sqlldr user/password control=Import.ctl log=log.txt discard=discard.txt errors=0
Mon fichier d'import
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
 
LOAD DATA INFILE '/Interface/AL/Fichier/AL.csv'
 
TRUNCATE
 
INTO TABLE SIC_AL
FIELDS TERMINATED BY ';'
optionally enclosed by '"'
(  DOSSIER ,          
 MT        
)