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*Loader Oracle Discussion :

SQl LOADER: Problème de date


Sujet :

SQL*Loader Oracle

  1. #21
    Membre habitué
    Inscrit en
    Décembre 2005
    Messages
    455
    Détails du profil
    Informations forums :
    Inscription : Décembre 2005
    Messages : 455
    Points : 166
    Points
    166
    Par défaut
    j'ai mis l'option:
    FIELDS DELIMITED BY ',' OPTIONALLY '"'
    mais j'ai une erreur:
    FIELDS: command not found
    TRUNCATE: command not found
    syntax error near unexpected token `('
    (CARD POSITION(1:11),

    Voici mon code:

    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
     
    echo "LOAD DATA
    INFILE '$rep/fichier.TXT'
    STREAM 
    BADFILE       '$LOGS/fichier.BAD'  
    DISCARDFILE   '$LOGS/fichier.DISCARD'" 
    FIELDS DELIMITED BY ',' OPTIONALLY '"'
    TRUNCATE INTO TABLE Nom_table
    (Val1 POSITION(1:11),
     Val2  POSITION(22:56),
     DATE_SAISIE POSITION(13:20) DATE "yyyymmdd",
     val3           POSITION(58:62),
     Val4 POSITION(75:82),
     val5 POSITION(84:91),
     val6     INTEGER EXTERNAL "246" ,
     Val7 CHAR ":val6||'/'||:val3||'/'||:val1||'.TIF'") " >>fichier.ctl
    Je ne sais pas d'où vient l'erreur.

  2. #22
    Membre expert

    Homme Profil pro
    Chef de projet en SSII
    Inscrit en
    Janvier 2004
    Messages
    2 862
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Loire Atlantique (Pays de la Loire)

    Informations professionnelles :
    Activité : Chef de projet en SSII
    Secteur : Conseil

    Informations forums :
    Inscription : Janvier 2004
    Messages : 2 862
    Points : 3 609
    Points
    3 609
    Par défaut
    Citation Envoyé par PpPool
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
     
    FIELDS TERMINATED BY ";" OPTIONALLY ENCLOSED BY '"'
    TRAILING NULLCOLS
    Mais tu ne peux pas cumuler les positions et ces options.

  3. #23
    Membre habitué
    Inscrit en
    Décembre 2005
    Messages
    455
    Détails du profil
    Informations forums :
    Inscription : Décembre 2005
    Messages : 455
    Points : 166
    Points
    166
    Par défaut
    ok d'accord donc je suis obligée de faire un fichier à part pour que mes guillemets soient pris en compte...

  4. #24
    Membre régulier
    Inscrit en
    Juin 2010
    Messages
    361
    Détails du profil
    Informations forums :
    Inscription : Juin 2010
    Messages : 361
    Points : 78
    Points
    78
    Par défaut
    Bonjour,

    Je déterre (littéralement, vu l'ancienneté de la discussion...) ce sujet pour un problème portant sur le même sujet: le chargement de dates dans une base.

    J'arrive bien à charger mon fichier avec des paramètres date de ce type:

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    DT_MVT "to_date(:DT_MVT,'yyyymmdd')",
    apparaît dans la table sous cet aspect: 01/02/2017 (normal)

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    AN_NAISS "to_date(:AN_NAISS,'yyyy')"
    apparaît dans la table sous cet aspect: 01/03/1954 (problématique car le jour et le mois sont ajoutés automatiquement par oracle)

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    DT_CG "to_date(:DT_CG,'yyyymmdd')"
    apparaît dans la table sous cet aspect: 23/09/1988 (normal)

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    ANMO_MEC "to_date(:ANMO_MEC,'yyyymm')"
    apparaît dans la table sous cet aspect: 01/09/1988 (il ne devrait apparaître que l'année et le mois)

    Comment serait-il possible que, lors du chargement, les formats to_date soient respectés et non pas systématiquement transformés en dd/mm/yyyy ?

    En fouinant sur internet, j'ai trouvé la variable NLS_DATE_FORMAT mais je ne sais pas (en tout cas, cela n'a pas fonctionné) si je peux l'inclure dans mon .ctl afin que le format date reste tel qu'il est dans le fichier de chargement ?

    Merci.

  5. #25
    Expert confirmé
    Profil pro
    Inscrit en
    Août 2008
    Messages
    2 949
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Août 2008
    Messages : 2 949
    Points : 5 848
    Points
    5 848
    Par défaut
    Une date est un type de donnée qui comporte le jour, mois, année, et sur Oracle, la composante horaire jusqu'à la seconde également.

    Si vous souhaitez stocker une année (qui n'est donc pas une date) vous pouvez le faire en stockant l'information dans un number(4).
    Pour le mois année, vous pouvez le faire dans 2 colonnes.

    Si vous conservez le type date, vous pouvez aussi fixer lors du chargement les composantes manquantes, par exemple considérer que pour stocker l'année vous le faites au 1er janvier.

    Bref tout dépend de vos objectifs et de vos possibilités à modifier le modèle, mais une année ne sera jamais une date.

  6. #26
    Membre régulier
    Inscrit en
    Juin 2010
    Messages
    361
    Détails du profil
    Informations forums :
    Inscription : Juin 2010
    Messages : 361
    Points : 78
    Points
    78
    Par défaut
    Ce serait donc pour cette raison que lors, du chargement de l'année (ex: 1984 dans le fichier source), Oracle ajoute 01/03/1984 ?
    C'est parce que j'ai fait le chargement au mois de mars et qu'il ajoute par défaut le 1er jour du mois ?

+ Répondre à la discussion
Cette discussion est résolue.
Page 2 sur 2 PremièrePremière 12

Discussions similaires

  1. [SQL Loader] problème de retour chariot
    Par euphorix dans le forum SQL
    Réponses: 3
    Dernier message: 31/08/2006, 05h37
  2. SQL Loader : problème champ ID
    Par jnp87 dans le forum SQL*Loader
    Réponses: 15
    Dernier message: 16/08/2006, 15h44
  3. [SQL*LOADER] Problème contrainte
    Par Spyco dans le forum Oracle
    Réponses: 2
    Dernier message: 12/01/2006, 08h52
  4. [SQL*Loader] Problème de chargement de nombres
    Par sebduth dans le forum Oracle
    Réponses: 10
    Dernier message: 18/11/2005, 10h07
  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