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 :
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 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" )
le csv que je cherche à loader :
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) ...
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....
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"
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
Partager