Bonjour,
je suis confronté au problème suivant :
j'insère le contenu d'un fichier dans ma base de données via sqlloader.
Ce fichier comporte 2 champs par lignes (exemple: SIG;005; ) et le fichier de contrôle sqlloader est le suivant :
Tout se passe à merveille sauf quand le deuxième champ de mon fichier n'est pas renseigné (exemple: SIG;; )Code:
1
2
3
4
5
6
7
8
9
10 OPTIONS( SKIP=1 ) LOAD DATA TRUNCATE INTO TABLE ES_R03 FIELDS TERMINATED BY ';' TRAILING NULLCOLS ( ES_SOURCENAME, ES_CENTERCODE "decode(:ES_SOURCENAME, 'SIG', '000', 'GCP', '000', 'DIS', '000', :ES_CENTERCODE)" )
Dans ce dernier cas, la valeur du champ ES_CENTERCODE en base est NULL.
Alors j'ai essayé par des moyens détournés :
Mais la valeur résultant n'est toujours pas '000' comme désiré mais '999'.Code:ES_CENTERCODE "decode(:ES_CENTERCODE , NULL , decode(:ES_SOURCENAME, 'SIG', '000', 'GCP', '000', 'DIS', '000', '999') , decode(:ES_SOURCENAME, 'SIG', '000', 'GCP', '000', 'DIS', '000', :ES_CENTERCODE))"
Quelqu'un aurait-il une explication rationnelle ?
Merci