Précédent   Forum des professionnels en informatique > Bases de données > Oracle > SQL
SQL Forum d'entraide sur le SQL pour Oracle
Partagez cette discussion sur d'autres réseaux sociaux : Viadeo Twitter Google Facebook Digg Delicious MySpace Yahoo
Réponse Proposer ce sujet en actualité
 
Outils de la discussion
Publicité
'
Vieux 24/01/2008, 13h10   #1
Nouveau Membre du Club
 
Avatar de Devlop++
 
Inscription : avril 2006
Messages : 86
Détails du profil
Informations personnelles :
Âge : 32

Informations forums :
Inscription : avril 2006
Messages : 86
Points : 26
Points : 26
Par défaut Probleme SQLLDR : Chargement date NULL

Salut,
je rencontre un probleme de chargement de données a partir d'un fichier plat au niveau d'un champ date vide.

Mon fichier de controle est le suivant :

LOAD DATA
INFILE '<mon_fichier>'
APPEND
INTO TABLE <ma_table>
FIELDS TERMINATED BY ';'
(
"COLONNE1" ,
"COLONNE2" ,
"COLONNE3" ,
"COLONNE4" ,
"COLONNE5" ,
"COLONNE6" ,
"COLONNE7" ,
"COLONNE8" ,
"COLONNE9_DATE" DATE(10) "DD/MM/YYYY")

Ma table est la suivante :

Nom NULL ? Type
------- ----------------------------------
COLONNE1 VARCHAR2(10)
COLONNE2 VARCHAR2(2)
COLONNE3 VARCHAR2(5)
COLONNE4 NUMBER(2)
COLONNE5 NUMBER(3)
COLONNE6 NUMBER(3)
COLONNE7 VARCHAR2(1)
COLONNE8 VARCHAR2(2)
COLONNE9_DATE DATE

les données en question :

00000001;17;C3371;20;0;0;A;0;0
00000002;17;C3372;20;7;0;A;0;0
00000003;25;C0070;20;0;0;B;0;0
00000004;29;C3372;18;0;0;B;0;0
00000005;29;C3333;20;4;0;B;0;0
00000006;17;C5555;20;0;0;A;0;0
00000007;17;C5589;20;0;0;A;0;0
00000008;09;C1111;15;0;0;A;D;01/04/2006
00000009;25;C3377;19;9;0;B;0;0

au départ j'ai essayé avec une valeur null ";;" pour le champ date, puis j'ai remplacé avec comme ci dessus par ";0" mais toujours les meme messages dans le fichier log et pourtant il charge la valeur de date de la 9° ligne:

Enregistrement 1 : Rejeté - Erreur sur table MA_TABLE, colonne "COLONNE9_DATE".
ORA-01847: le jour du mois doit être compris entre 1 et le dernier jour du mois

Enregistrement 2 : Rejeté - Erreur sur table MA_TABLE, colonne "COLONNE9_DATE".
ORA-01847: le jour du mois doit être compris entre 1 et le dernier jour du mois

Enregistrement 3 : Rejeté - Erreur sur table MA_TABLE, colonne "COLONNE9_DATE".
ORA-01847: le jour du mois doit être compris entre 1 et le dernier jour du mois

Enregistrement 4 : Rejeté - Erreur sur table MA_TABLE, colonne "COLONNE9_DATE".
ORA-01847: le jour du mois doit être compris entre 1 et le dernier jour du mois

Enregistrement 5 : Rejeté - Erreur sur table MA_TABLE, colonne "COLONNE9_DATE".
ORA-01847: le jour du mois doit être compris entre 1 et le dernier jour du mois

Enregistrement 6 : Rejeté - Erreur sur table MA_TABLE, colonne "COLONNE9_DATE".
ORA-01847: le jour du mois doit être compris entre 1 et le dernier jour du mois

Enregistrement 7 : Rejeté - Erreur sur table MA_TABLE, colonne "COLONNE9_DATE".
ORA-01847: le jour du mois doit être compris entre 1 et le dernier jour du mois

Enregistrement 8 : Rejeté - Erreur sur table MA_TABLE, colonne "COLONNE9_DATE".
ORA-01847: le jour du mois doit être compris entre 1 et le dernier jour du mois

Enregistrement 10 : Rejeté - Erreur sur table MA_TABLE, colonne "COLONNE9_DATE".
ORA-01847: le jour du mois doit être compris entre 1 et le dernier jour du mois

Merci d'avance.
Devlop++ est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 24/01/2008, 13h29   #2
Responsable Business Intelligence
 
Avatar de kalyparker
 
Femme
Consultant en Business Intelligence
Inscription : janvier 2007
Messages : 1 192
Détails du profil
Informations personnelles :
Sexe : Femme
Localisation : France

Informations professionnelles :
Activité : Consultant en Business Intelligence

Informations forums :
Inscription : janvier 2007
Messages : 1 192
Points : 2 564
Points : 2 564
Bonjour,

L'erreur est normale !
Tu essai de mettre dans un champ date 'DD/MM/YYYY' une valeur '0'

Essai de ne rien mettre dans ton fichier
Code :
1
2
00000001;17;C3371;20;0;0;A;0;
00000002;17;C3372;20;7;0;A;0;
précise en debut 'TRAILING NULLCOLS'
Code :
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
LOAD DATA
INFILE '<mon_fichier>'
APPEND 
INTO TABLE <ma_table>
FIELDS TERMINATED BY ';'
TRAILING NULLCOLS
(
"COLONNE1" ,
"COLONNE2" ,
"COLONNE3" ,
"COLONNE4" ,
"COLONNE5" ,
"COLONNE6" ,
"COLONNE7" ,
"COLONNE8" ,
"COLONNE9_DATE" DATE(10) "DD/MM/YYYY")
Normalement ça devrait marcher
kalyparker est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 24/01/2008, 15h19   #3
Nouveau Membre du Club
 
Avatar de Devlop++
 
Inscription : avril 2006
Messages : 86
Détails du profil
Informations personnelles :
Âge : 32

Informations forums :
Inscription : avril 2006
Messages : 86
Points : 26
Points : 26
Merci d'avoir répondu si vite a ma requete, ca resolu bien mon probleme, c'est nouveau pour moi l'option TRAILING NULLCOLS.
Merci encore.
Devlop++ est déconnecté   Envoyer un message privé Réponse avec citation 00
Réponse Proposer ce sujet en actualité Cette discussion est résolue.
Outils de la discussion



Fuseau horaire GMT +2. Il est actuellement 18h02.


 
 
 
 
Partenaires

Hébergement Web