IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

SQL Oracle Discussion :

ORA-01840: valeur entrée pas assez longue pour le format de la date


Sujet :

SQL Oracle

  1. #1
    Membre à l'essai
    Inscrit en
    Août 2005
    Messages
    30
    Détails du profil
    Informations forums :
    Inscription : Août 2005
    Messages : 30
    Points : 10
    Points
    10
    Par défaut ORA-01840: valeur entrée pas assez longue pour le format de la date
    Bonjour,

    Je voulais insérer un fichier dans une base Oracle et je rencontre cette erreur.
    La donnée pour ce champ correspond à une date de type 'DD/MM/YYYY'. Et cette erreur intervient à la deuxième date du fichier alors que la première date est du même format.

    Je ne comprend pas...

    Merci pour votre aide!!

  2. #2
    Membre habitué
    Inscrit en
    Septembre 2006
    Messages
    142
    Détails du profil
    Informations forums :
    Inscription : Septembre 2006
    Messages : 142
    Points : 170
    Points
    170
    Par défaut
    tu utilises quel outil pour insérer ce fichier: Sqlloader ? avec quelle paramêtres ?

  3. #3
    Membre à l'essai
    Inscrit en
    Août 2005
    Messages
    30
    Détails du profil
    Informations forums :
    Inscription : Août 2005
    Messages : 30
    Points : 10
    Points
    10
    Par défaut
    oui j'utilise SQL Loader:

    j'ai créé un fichier .ctl et un fichier .sh

    dans mon .sh :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    sqlldr userid=DEV_MOD/DEV_MOD control=XIndem.ctl data=indem.txt log=XIndem.log bad=XIndem.bad discard=XIndem.dsc errors=0 skip=1
    dans 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
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
    35
    36
    load data infile 'indem.txt'
    append
    into table XIndem
    fields terminated by WHITESPACE OPTIONALLY ENCLOSED BY '"'
    TRAILING NULLCOLS
    (
    oid             "sys_guid()",
    timestamp	"sysdate",
    matricule 	 ,
    nom 		 ,
    prenom		 ,
    dateDemande	 ,
    dateDebDrts	 ,
    datePaiementT	 ,
    nbJrsIndem	 ,
    dateRegle	 ,
    salBrut		 ,
    assRDS		 ,
    assMal		 ,
    retRDS		 ,
    retMal		 ,
    retCSG1		 ,
    retCSG2		 ,
    assCSG1		 ,
    assCSG2		 ,
    retMut		 ,
    retRC		 ,
    montantNet	 ,
    salNet		 ,
    netImp		 ,
    ith		 ,
    autNets		 ,
    acompte		 ,
    cotisMmv	 ,
    cotisAtmp	 
    )
    voilà

  4. #4
    Membre habitué
    Inscrit en
    Septembre 2006
    Messages
    142
    Détails du profil
    Informations forums :
    Inscription : Septembre 2006
    Messages : 142
    Points : 170
    Points
    170
    Par défaut
    skip = 1 => sqlloader ne tiens pas compte de la première ligne, à utiliser pour des fichiers avec entête par example.

    Tu ne spécifies la format de tes dates, sqlloader utilise l'environnement NLS par defaut qui peut ne pas correspondre au format des dates dans le fichier.

    Par example
    datedemande date "DD/MM/YYYY"

  5. #5
    Membre à l'essai
    Inscrit en
    Août 2005
    Messages
    30
    Détails du profil
    Informations forums :
    Inscription : Août 2005
    Messages : 30
    Points : 10
    Points
    10
    Par défaut
    Dans mon fichier de 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
    Nom de colonne               Position   Long.  Séparat. Encadrem. Type de données
    ------------------------------ ---------- ----- ---- ---- ---------------------
    OID                                 FIRST     *  WHT O(") CHARACTER            
        chaîne SQL pour la colonne : "sys_guid()"
    TIMESTAMP                            NEXT     *  WHT O(") CHARACTER            
        chaîne SQL pour la colonne : "sysdate"
    MATRICULE                            NEXT     *  WHT O(") CHARACTER            
    NOM                                  NEXT     *  WHT O(") CHARACTER            
    PRENOM                               NEXT     *  WHT O(") CHARACTER            
    DATEDEMANDE                          NEXT     *  WHT O(") DATE DD/MM/YYYY      
    DATEDEBDRTS                          NEXT     *  WHT O(") DATE DD/MM/YYYY      
    DATEPAIEMENTT                        NEXT     *  WHT O(") DATE DD/MM/YYYY      
    NBJRSINDEM                           NEXT     *  WHT O(") CHARACTER            
    DATEREGLE                            NEXT     *  WHT O(") DATE DD/MM/YYYY      
    SALBRUT                              NEXT     *  WHT O(") CHARACTER            
    ASSRDS                               NEXT     *  WHT O(") CHARACTER            
    ASSMAL                               NEXT     *  WHT O(") CHARACTER            
    RETRDS                               NEXT     *  WHT O(") CHARACTER            
    RETMAL                               NEXT     *  WHT O(") CHARACTER            
    RETCSG1                              NEXT     *  WHT O(") CHARACTER            
    RETCSG2                              NEXT     *  WHT O(") CHARACTER            
    ASSCSG1                              NEXT     *  WHT O(") CHARACTER            
    ASSCSG2                              NEXT     *  WHT O(") CHARACTER            
    RETMUT                               NEXT     *  WHT O(") CHARACTER            
    RETRC                                NEXT     *  WHT O(") CHARACTER            
    MONTANTNET                           NEXT     *  WHT O(") CHARACTER            
    SALNET                               NEXT     *  WHT O(") CHARACTER            
    NETIMP                               NEXT     *  WHT O(") CHARACTER            
    ITH                                  NEXT     *  WHT O(") CHARACTER            
    AUTNETS                              NEXT     *  WHT O(") CHARACTER            
    ACOMPTE                              NEXT     *  WHT O(") CHARACTER            
    COTISMMV                             NEXT     *  WHT O(") CHARACTER            
    COTISATMP                            NEXT     *  WHT O(") CHARACTER            
     
    Enregistrement 1 : Rejeté - Erreur sur table XINDEM, colonne DATEDEBDRTS.
    ORA-01840: valeur entrée pas assez longue pour le format de la date
    Toujours la même erreur....

  6. #6
    Expert éminent sénior
    Avatar de orafrance
    Profil pro
    Inscrit en
    Janvier 2004
    Messages
    15 967
    Détails du profil
    Informations personnelles :
    Âge : 47
    Localisation : France

    Informations forums :
    Inscription : Janvier 2004
    Messages : 15 967
    Points : 19 075
    Points
    19 075
    Par défaut
    Balise Code Stp

  7. #7
    Membre à l'essai
    Inscrit en
    Août 2005
    Messages
    30
    Détails du profil
    Informations forums :
    Inscription : Août 2005
    Messages : 30
    Points : 10
    Points
    10
    Par défaut
    et lorsque je précise juste :
    dateDebDrts "DD/MM/YYYY"

    J'ai cette erreur...

    Enregistrement 1 : Rejeté - Erreur sur table XINDEM, colonne DATEDEBDRTS.
    ORA-00984: Un nom de colonne n'est pas autorisé ici

  8. #8
    Membre à l'essai
    Inscrit en
    Août 2005
    Messages
    30
    Détails du profil
    Informations forums :
    Inscription : Août 2005
    Messages : 30
    Points : 10
    Points
    10
    Par défaut
    Je crois que l'erreur vient du fait que SQL Loader essait d'insérer une date dans une colonne qui ne lui correspondait pas.

    Dans l'insertion, il a ignoré les colonnes matricule et nom. Ce qui fait que toutes les données ont décalé...

Discussions similaires

  1. Parce que l'Europe, c'est pas assez bien pour nous !
    Par pmithrandir dans le forum Politique
    Réponses: 76
    Dernier message: 26/05/2014, 18h47
  2. L’Inde pas assez sécurisée pour les données ?
    Par Gordon Fowler dans le forum Actualités
    Réponses: 15
    Dernier message: 27/06/2013, 11h21
  3. awk pour le format de la date
    Par ensienne dans le forum Shell et commandes GNU
    Réponses: 8
    Dernier message: 18/09/2012, 17h33
  4. Réponses: 14
    Dernier message: 27/05/2008, 17h29

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo