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 :

Code : Sélectionner tout - Visualiser dans une fenêtre à part
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 :

Code : Sélectionner tout - Visualiser dans une fenêtre à part
  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