Bonjour,

Je dois importer un fichier csv dans une table.

La table est la suivante
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
 
CREATE TABLE CCM_IMPORT_CER
(
  IC4_ID          NUMBER,
  IC1_CODE        NUMBER(15),
  CTC_CODE        NUMBER(10),
  CTC_RAIS        VARCHAR2(100 CHAR),
  CDR_CP          VARCHAR2(8 CHAR),
  CDR_VILLE       VARCHAR2(40 CHAR),
  CER_LIB         VARCHAR2(30 CHAR),
  CER_CODE        NUMBER(2),
  ACC_DATEOPT     DATE,
  IC1_CER_TOKILL  NUMBER(1),
  IC1_CER_KILLED  NUMBER(1),
  INTEGRATED_AT   VARCHAR2(15 CHAR),
  CREATED_AT      DATE,
  CREATED_BY      NUMBER(6)
)
la séquence est créée
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
 
--
-- CCM_IMPORT_CER_SEQ  (Sequence) 
--
CREATE SEQUENCE CCM_IMPORT_CER_SEQ
  START WITH 1
  MAXVALUE 9999999999999999999999999999
  MINVALUE 1
  NOCYCLE
  NOCACHE
  ORDER;

Le fichier de contrôle est le suivant
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
 
LOAD DATA
INFILE "${DIRCSV}${uti_code}_CCM_IMPORT_CER_${integrated_at}.csv"
APPEND INTO TABLE CCM_IMPORT_CER
FIELDS terminated by ";" Optionally enclosed by '"' TRAILING NULLCOLS
(
 IC4_ID "ccm_import_cer_seq.nextval",
 IC1_CODE        ,
 CTC_RAIS        ,
 CDR_CP          ,
 CDR_VILLE       ,
 CER_LIB         ,
 CER_CODE        ,
 ACC_DATEOPT     ,
 IC1_CER_TOKILL ,
 IC1_CER_KILLED
)
Le fichier csv à importer est le suivant :
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
 
1;Raison sociale 1;85600;Montaigu;Attestation de capacité;74;;0;0
3;Raison sociale 3;85602;Montaigu;Attestation de capacité;74;;0;0
3;Raison sociale 3;85602;Montaigu;Dolce vita;61;;0;0
4;Raison sociale 4;85603;Montaigu;Eco artisan;72;;0;0
4;Raison sociale 4;85603;Montaigu;Eco artisan;72;;0;0
5;Raison sociale 5;85604;Montaigu;Suivi Guillot;7;;0;0
L'import me donne ça en .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
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
 
Table CCM_IMPORT_CER, loaded from every logical record.
Insert option in effect for this table: APPEND
TRAILING NULLCOLS option in effect
 
   Column Name                  Position   Len  Term Encl Datatype
------------------------------ ---------- ----- ---- ---- ---------------------
IC4_ID                              FIRST     *   ;  O(") CHARACTER
    SQL string for column : "ccm_import_cer_seq.nextval"
IC1_CODE                             NEXT     *   ;  O(") CHARACTER
CTC_RAIS                             NEXT     *   ;  O(") CHARACTER
CDR_CP                               NEXT     *   ;  O(") CHARACTER
CDR_VILLE                            NEXT     *   ;  O(") CHARACTER
CER_LIB                              NEXT     *   ;  O(") CHARACTER
CER_CODE                             NEXT     *   ;  O(") CHARACTER
ACC_DATEOPT                          NEXT     *   ;  O(") CHARACTER
IC1_CER_TOKILL                       NEXT     *   ;  O(") CHARACTER
IC1_CER_KILLED                       NEXT     *   ;  O(") CHARACTER
Record 1: Rejected - Error on table CCM_IMPORT_CER, column IC1_CODE.
ORA-01722: invalid number
 
Record 2: Rejected - Error on table CCM_IMPORT_CER, column IC1_CODE.
ORA-01722: invalid number
 
Record 3: Rejected - Error on table CCM_IMPORT_CER, column IC1_CODE.
ORA-01722: invalid number
 
Record 4: Rejected - Error on table CCM_IMPORT_CER, column IC1_CODE.
ORA-01722: invalid number
 
Record 5: Rejected - Error on table CCM_IMPORT_CER, column IC1_CODE.
ORA-01722: invalid number
 
Record 6: Rejected - Error on table CCM_IMPORT_CER, column IC1_CODE.
ORA-01722: invalid number
 
Table CCM_IMPORT_CER:
  0 Rows successfully loaded.
  6 Rows not loaded due to data errors.
  0 Rows not loaded because all WHEN clauses were failed.
  0 Rows not loaded because all fields were null.
 
 
Space allocated for bind array:                 165120 bytes(64 rows)
Read   buffer bytes: 1048576
 
Total logical records skipped:          3
Total logical records read:             6
Total logical records rejected:         6
Total logical records discarded:        0
- Si je met en dernier la lecture de la colonne IC4_ID (pour la séquence), alors il intègre la 1ère ligne et les autres sont en erreur.
- Si je met en dernier la colonne IC4_ID et que j'ajoute des ; à la fin de chaque ligne du csv alors il arrive à m'intégrer les lignes, mais je ne vois pas pourquoi il me demande cela étant donné que j'utilise l'option TRAILING NULLCOLS ?
- Si je met IC4_ID EXPRESSION "ccm_import_cer_seq.nextval", ça ne fonctionne pas non plus.

Qu'est ce que j'ai bien pu zapper pour intégrer correctement ce fichier csv ?

Merci pour votre aide.