Bonjour,

avant toute chose, j'ai consulté : http://jaouad.developpez.com/sqlldr/
et j'ai fait des recherches sur le forum en vain (il y a bien ça qui pourrait correspondre : http://www.developpez.net/forums/d50...er-p-sequence/)

Donc voici mon problème : comme sur la question déjà posée sur le forum j'ai une table de x colonnes + 1 colonne ID avec un fichier csv de x colonnes à intégrer.

J'ai donc suivi le tuto de Jaouad. Voici donc mon CTL :
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
LOAD DATA
REPLACE 
INTO TABLE INS_MES_AIDE1
FIELDS TERMINATED BY ';' 
OPTIONALLY ENCLOSED BY '"'
(ANNEE,
MESURE,
GEO_REGION_code,
GEO_DEPARTEMENT_CODE,
GEO_COTEF_CODE,
GEO_SSCOTEF_CODE,
COM5,
indicateur,
REF_GENRE_Code,
INS_MES_TRAGE_code,
REF_TRIMESTRE_code,
EFFT,
INS_MES_AIDE1_id "MES_AIDE1_seq.nextval"
)
Voici mon log :
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
.... table INS_MES_AIDE1, chargé à partir de chaque enregistrement physique.
Option d'insertion en vigueur pour cette table : REPLACE
 
   Nom de colonne               Position   Long.  Séparat. Encadrem. Type de données
------------------------------ ---------- ----- ---- ---- ---------------------
ANNEE                               FIRST     *   ;  O(") CHARACTER            
MESURE                               NEXT     *   ;  O(") CHARACTER            
GEO_REGION_CODE                      NEXT     *   ;  O(") CHARACTER            
GEO_DEPARTEMENT_CODE                 NEXT     *   ;  O(") CHARACTER            
GEO_COTEF_CODE                       NEXT     *   ;  O(") CHARACTER            
GEO_SSCOTEF_CODE                     NEXT     *   ;  O(") CHARACTER            
COM5                                 NEXT     *   ;  O(") CHARACTER            
INDICATEUR                           NEXT     *   ;  O(") CHARACTER            
REF_GENRE_CODE                       NEXT     *   ;  O(") CHARACTER            
INS_MES_TRAGE_CODE                   NEXT     *   ;  O(") CHARACTER            
REF_TRIMESTRE_CODE                   NEXT     *   ;  O(") CHARACTER            
EFFT                                 NEXT     *   ;  O(") CHARACTER            
INS_MES_AIDE1_ID                     NEXT     *   ;  O(") CHARACTER            
    chaîne SQL pour la colonne : "MES_AIDE1_seq.nextval"
 
Enregistrement 1 : Rejeté - Erreur sur table INS_MES_AIDE1, colonne INS_MES_AIDE1_ID.
Colonne absente avant fin d'enregis. logique (utiliser TRAILING NULLCOLS) ...
le csv que je cherche à loader :
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
"ANNEE";"MESURE";"REG";"DEP";"COTEF";"SOUS_COTEF";"COM5";"Indicateur";"SEXE";"TRAGE";"TRIMESTRE";"EFFT"
"2004";"ABC";"FE";"SO";"SO";"SO";"SO";"R";"2";"T";"1";"12356"
Ah oui ... pour info, j'ai bien regardé mais je n'utilise PAS le mode direct (false par défaut) et j'ai un skip=1 ... j'ai aussi essayé de mettre mon ID au début (premiers essais) et non à la fin pour le même résultats....
ma version est oracle XE (10g)

Donc Si j'ai bien décodé le log, cela signifie que SQLLDR ne trouve pas dans le CSV la x+1 colonne pour correspondant à ma colonne INS_MES_AIDE_1_id.
Mais c'est normal ! puisque que je lui dit d'utiliser ma séquence !

D'après ce que j'ai pu lire je pourrais ajouté un ';' à la fin de chaque ligne pour faire "comme si" j'avais une colonne x+1 vide mais vu le nombre de fichier je ne préfère pas ... et puis je me vois pas modifier les fichiers à chaque fois (MAJ régulières)...

Je commence depuis peu avec SQLLDR (2 semaines) et là je ne comprends pas, la syntaxe utilisée étant la même que celle du tuto. Où me suis-je planté ?

Merci d'avance de votre aide,
Guillaume