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 :
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)"
) |
Tout se passe à merveille sauf quand le deuxième champ de mon fichier n'est pas renseigné (exemple: SIG;; )
Dans ce dernier cas, la valeur du champ ES_CENTERCODE en base est NULL.
Alors j'ai essayé par des moyens détournés :
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))"
Mais la valeur résultant n'est toujours pas '000' comme désiré mais '999'.
Quelqu'un aurait-il une explication rationnelle ?
Merci
Partager