|
|
|
|
Bonjou
J'ai un souci avec mon sqlloader quand je veux charger un ficher qui contient une date ( exemple : 20:00 )
Voici mon ficher .ctl
LOAD DATA
INFILE 'C:\dml_t_gares.csv'
TRUNCATE
INTO TABLE t_gares
FIELDS TERMINATED BY ';'
(GARE_ID "seq_t_gares.nextval" ,
NOM,
OUVERTURE,
FERMETURE)
Ma table que j'ai crée:
CREATE TABLE T_GARES
(GARE_ID NUMBER(6) ,
NOM VARCHAR2(25) ,
OUVERTURE DATE ,
FERMETURE DATE );
Et mon ficher log me dit:
Enregistrement 1 : Rejeté - Erreur sur table T_GARES, colonne OUVERTURE.
ORA-01843: ce n'est pas un mois valide
mon .csv:
seq_t_gares.nextval;Bordeaux;06:30;22:00
seq_t_gares.nextval;Brest;06:45;21:45
Voila pour le premier pour ma deusième erreur, elle est toujours de type date mais
ficher .ctl
LOAD DATA
INFILE 'C:\dml_t_trains.csv'
TRUNCATE
INTO TABLE t_trains
FIELDS TERMINATED BY ';'
(TRAIN_ID "seq_t_trains.nextval" ,
DEPART_ID,
ARRIVEE_ID,
DATE_DEPART,
DATE_ARRIVEE,
DISTANCE,
PRIX CHAR NULLIF PRIX = 'NULL' "to_number(:PRIX,'9999999D99','NLS_NUMERIC_CHARACTERS= ''. ''')")
table:
CREATE TABLE T_TRAINS
(TRAIN_ID NUMBER(6),
DEPART_ID NUMBER(6),
ARRIVEE_ID NUMBER(6),
DATE_DEPART DATE,
DATE_ARRIVEE DATE,
DISTANCE NUMBER(6),
PRIX NUMBER(8,2));
Enregistrement 1 : Rejeté - Erreur sur table T_TRAINS, colonne DATE_DEPART.
ORA-01830: Le modèle du format de date se termine avant la conversion de la chaîne d'entrée entière
Mon .csv:
seq_t_trains.nextval;16;1;21/11/05 09:00;21/11/05 12:00;482;120.5
seq_t_trains.nextval;1;16;21/11/05 14:30;21/11/05 17:30;482;120.5
Merci de me dire si vous trouver quelque chose de louche,
Configuration: Windows Vista Firefox 2.0.0.12
Bonjour Hellreaper,
DD/MM/RR HH24:MIIl te faut donc convertir tes dates, tout comme on a converti les nombres dans ton autre post. LOAD DATA INFILE 'C:\dml_t_trains.csv' TRUNCATE INTO TABLE t_trains FIELDS TERMINATED BY ';' (TRAIN_ID "seq_t_trains.nextval" , DEPART_ID, ARRIVEE_ID, DATE_DEPART "to_date(:DATE_DEPART,'DD/MM/RR HH24:MI')", DATE_ARRIVEE "to_date(:DATE_ARRIVEE,'DD/MM/RR HH24:MI')", DISTANCE, PRIX CHAR NULLIF PRIX = 'NULL' "to_number(:PRIX,'9999999D99','NLS_NUMERIC_CHARACTERS= ''. ''')") Une belette, un lapin !? C'est pas normal! |
Pour la première erreur (ORA-01843)
LOAD DATA INFILE 'C:\dml_t_gares.csv' TRUNCATE INTO TABLE t_gares FIELDS TERMINATED BY ';' (GARE_ID "seq_t_gares.nextval" , NOM, OUVERTURE "to_date(:OUVERTURE,'HH24:MI')", FERMETURE "to_date(:FERMETURE,'HH24:MI')") D'ailleur, le message d'erreur est parlant quand tu le reportes au format de date en vigueur pour ta base (DD/MM/RR): ORA-01843: ce n'est pas un mois valide 06:30 -> 06 Jour valide -> 30 Mois invalide (NOTA: les séparateurs (:/<espace>) ne semblent pas avoir un rôle determinant, mais autant le faire proprement) ORA-01830: Le modèle du format de date se termine avant la conversion de la chaîne d'entrée entière Le modèle de date est DD/MM/RR Si on décompose ta première date dans le fichier:21/11/05 09:00 21/11/05 -> jusque la ça colle on a bien DD/MM/RR 09:00 -> Le format de date (DD/MM/RR) est déjà rempli, et on tente d'y entrer encore la fin de la chaine. Cordiaelement Une belette, un lapin !? C'est pas normal! |
Merci j'arrive a loader mais table mais les dates son toute fausse...
|