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 :

[SQL*Loader] ORA-01830 problème de date


Sujet :

SQL Oracle

  1. #1
    Nouveau membre du Club
    Inscrit en
    Avril 2004
    Messages
    33
    Détails du profil
    Informations forums :
    Inscription : Avril 2004
    Messages : 33
    Points : 26
    Points
    26
    Par défaut [SQL*Loader] ORA-01830 problème de date
    Bonjour à tous !

    Je suis en train de m'arracher les cheveux avec SQLLoader :
    J'essaie d'insérer un fichier CSV dans une table dont une colonne est de type date.
    Or j'obtiens l'erreur :
    ORA-01830: date format picture ends before converting entire input string

    Voila une ligne :
    12116;JUR;10/05/2007 18:05:06;1

    et voila le fichier de controle :

    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 'C:\sqlldr\import.csv'
    BADFILE 'C:\sqlldr\import.bad'
    DISCARDFILE 'C:\sqlldr\import.dsc'
     
    APPEND
    INTO TABLE "TSMF7B"
    APPEND
     
    FIELDS TERMINATED BY ';'
    TRAILING NULLCOLS
      (
       NOMEP,
       CDMEM,
       DAFZT Date "DD/MM/YYYY HH24:MI:SS",
       XQCIF
      )
    Pourtant, sur d'autres imports, mettre une date mais avec un format DD/MM/YYYY seulement, ca fonctionne ! Est-ce l'espace dans le masque qui pose problème ?

    Merci beaucoup !

  2. #2
    Membre confirmé
    Profil pro
    Inscrit en
    Juillet 2007
    Messages
    500
    Détails du profil
    Informations personnelles :
    Localisation : France, Paris (Île de France)

    Informations forums :
    Inscription : Juillet 2007
    Messages : 500
    Points : 639
    Points
    639
    Par défaut
    Bonjour,

    Je pense qu'il faudrait que tu spécifies ton format, étant donné qu'il semble être différent de celui par défaut de ta base Oracle :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    DAFZT 'DD/MM/YYYY HH24:MI:SS',
    Des chercheurs qui cherchent, on en trouve, mais des chercheurs qui trouvent, on en cherche !

  3. #3
    Nouveau membre du Club
    Inscrit en
    Avril 2004
    Messages
    33
    Détails du profil
    Informations forums :
    Inscription : Avril 2004
    Messages : 33
    Points : 26
    Points
    26
    Par défaut
    Ouh la, euh, oui bien sur ! Je l'ai fait, mais j'ai fait du recopiage d'un autre PC, et j'ai oublié l'essentiel...
    J'edite tout de suite !

  4. #4
    Membre confirmé
    Profil pro
    Inscrit en
    Juillet 2007
    Messages
    500
    Détails du profil
    Informations personnelles :
    Localisation : France, Paris (Île de France)

    Informations forums :
    Inscription : Juillet 2007
    Messages : 500
    Points : 639
    Points
    639
    Par défaut
    Ca c'est fort, tu peux modifier un message déjà posté !
    Ceux qui vont lire maintenant vont se dire que j'ai pas l'air d'un con avec ma réponse...
    Si un modérateur passe par là, qu'il prenne en compte ma contestation sur ce genre de méthode !

    Du coup, je ne vois pas d'où viens ton problème...
    Des chercheurs qui cherchent, on en trouve, mais des chercheurs qui trouvent, on en cherche !

  5. #5
    Membre actif
    Profil pro
    Inscrit en
    Janvier 2006
    Messages
    178
    Détails du profil
    Informations personnelles :
    Âge : 45
    Localisation : France

    Informations forums :
    Inscription : Janvier 2006
    Messages : 178
    Points : 220
    Points
    220
    Par défaut
    Voici un exemple tiré de la documentation :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    CREATE TABLE emp_load
     (first_name CHAR(15),
      last_name CHAR(20),
      hire_date CHAR(10),
      resume_file CHAR(500))
      ORGANIZATION EXTERNAL 
       (TYPE ORACLE_LOADER
        DEFAULT DIRECTORY ext_tab_dir
        ACCESS PARAMETERS (FIELDS TERMINATED BY ","
                            (first_name,
                             last_name,
                             hire_date CHAR(10) DATE_FORMAT DATE MASK "mm/dd/yyyy",
                             resume_file))
        LOCATION ('info.dat'));
    C'est pour une table externe mais le format de type ORACLE_LOADER, c'est à dire celui de SQL Loader. Ca semble être un problème de syntaxe...

    rbaraer

  6. #6
    Nouveau membre du Club
    Inscrit en
    Avril 2004
    Messages
    33
    Détails du profil
    Informations forums :
    Inscription : Avril 2004
    Messages : 33
    Points : 26
    Points
    26
    Par défaut
    Merci rbaraer, mais je ne vois pas bien comment utiliser ton code...
    Le DATE_FORMAT n'est-il pas pour transformer une date en CHAR ?

    j'ai essayé
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    DAFZT "To_Date(:DAFZT, 'DD/MM/YYYY HH24:MI:SS')",
    mais j'ai la meme erreur, et en essayant :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    DAFZT CHAR(19) DATE_FORMAT DATE MASK "DD/MM/YYYY HH24:MI:SS",
    J'ai une erreur de syntaxe...

    Je deviens fou !

  7. #7
    Membre du Club
    Inscrit en
    Juillet 2006
    Messages
    40
    Détails du profil
    Informations forums :
    Inscription : Juillet 2006
    Messages : 40
    Points : 43
    Points
    43
    Par défaut
    Je n'ai pas de problème pour charger la ligne que tu donnes en exemple avec le fichier de control que tu fournis.
    1) La colonne dafzt est-elle bien de type DATE ?


    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    SQL> desc TSMF7B
     Name                                      Null?    Type
     ----------------------------------------- -------- ----------------------------
     NOMEP                                              VARCHAR2(30)
     CDMEM                                              VARCHAR2(30)
     DAFZT                                              DATE
     XQCIF                                              VARCHAR2(30)
    2) As-tu vérifié que tu n'as pas un caractère parasite dans ton fichier csv ?

  8. #8
    Futur Membre du Club
    Inscrit en
    Mai 2009
    Messages
    4
    Détails du profil
    Informations personnelles :
    Âge : 38

    Informations forums :
    Inscription : Mai 2009
    Messages : 4
    Points : 5
    Points
    5
    Par défaut
    Salut tt le monde


    Avant de modifie (Ajoute ou suppression )tu doit Modifier
    NLS_DATE_FORMAT de votre session

    code :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    ALTER SESSION SET NLS_DATE_FORMAT = 'DD/MM/YYYY'
    et bonne chance

Discussions similaires

  1. SQl LOADER: Problème de date
    Par claralavraie dans le forum SQL*Loader
    Réponses: 25
    Dernier message: 28/03/2017, 11h24
  2. Erreur ORA-01861 (problème de date)
    Par melleweb dans le forum SQL
    Réponses: 1
    Dernier message: 09/07/2007, 12h37
  3. [SQL] Transfert de données, problème de date
    Par Lydie12 dans le forum PHP & Base de données
    Réponses: 12
    Dernier message: 07/06/2007, 14h16
  4. [SQL*Loader] Fusionner 2 colonnes dates
    Par choubiroute dans le forum Oracle
    Réponses: 4
    Dernier message: 21/04/2005, 14h24
  5. Réponses: 4
    Dernier message: 10/06/2004, 18h05

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