Table externe et valeurs nulles
Bonjour,
Je dois charger un fichier dans une table externe dont voici le script :
Code:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39
| CREATE TABLE "NEO405CY"."WK_EMAIL" (
(...)
"SCORE4" NUMBER(6,0),
"SCORE5" NUMBER(6,0),
"NBTICVTE" NUMBER(3,0),
"CODRELAI" VARCHAR2(5 BYTE),
"CODMAG" VARCHAR2(3 BYTE),
"CODMAG1" VARCHAR2(3 BYTE),
"NBDEMCAT" NUMBER(2,0),
"CLTFIL" NUMBER(2,0),
"TSURPLUS" VARCHAR2(1 BYTE)
) ORGANIZATION EXTERNAL (
TYPE ORACLE_LOADER
DEFAULT DIRECTORY "DIR_EMAIL"
ACCESS PARAMETERS (
RECORDS DELIMITED BY NEWLINE
CHARACTERSET 'WE8MSWIN1252'
STRING SIZES ARE IN CHARACTERS
BADFILE DIR_EMAIL_BAD:'email_20090525_180956.bad'
LOGFILE DIR_EMAIL_LOG:'email_20090525_180956.log'
DISCARDFILE DIR_EMAIL_DSC:'email_20090525_180956.dsc'
FIELDS
LRTRIM
(
(...)
SCORE4 POSITION(778:783) NULLIF SCORE4=BLANKS,
SCORE5 POSITION(784:789) NULLIF SCORE5=BLANKS,
NBTICVTE POSITION(790:792) NULLIF NBTICVTE=BLANKS,
CODRELAI POSITION(793:797) NULLIF CODRELAI=BLANKS,
CODMAG POSITION(798:800) NULLIF CODMAG=BLANKS,
CODMAG1 POSITION(801:803) NULLIF CODMAG1=BLANKS,
NBDEMCAT POSITION(804:805) NULLIF NBDEMCAT=BLANKS,
CLTFIL POSITION(806:807) NULLIF CLTFIL=BLANKS,
TSURPLUS POSITION(808:808) NULLIF TSURPLUS=BLANKS
)
)
LOCATION ('NEO.EMAIL.SOC4X.DU250509.164200.TXT.trunc')
)
REJECT LIMIT UNLIMITED; |
Je souhaite que les espaces ou les blancs soient considérés comme NULL.
Donc j'ai rajouté NULLIF <CHAMPS>=BLANKS.
Ce qui est bizarre, c'est quand je regroupe les valeurs d'un champ (par exemple CODROLG), j'obtiens des valeurs NULL, des espaces et les codes qui vont bien.
Il ne devrait pas avoir d'espace.
J'ai aussi ajouté LRTRIM dans les paramètres, le résultat est le même.
J'ai essayé MISSING FIELDS VALUES ARE NULL mais cela ne marche qu'avec des tables externes qui utilise des délimiteurs et non du positionnement.
Merci d'avance pour votre aide ;)